diff --git a/CodeToXMI.sln.DotSettings.user b/CodeToXMI.sln.DotSettings.user index b4ca132e894178db5257e0426109095820dcd2a1..f74312a70119a758c55863fd7229eeafb0d33c38 100644 --- a/CodeToXMI.sln.DotSettings.user +++ b/CodeToXMI.sln.DotSettings.user @@ -1,9 +1,11 @@ <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <s:String x:Key="/Default/Environment/Hierarchy/Build/BuildTool/CustomBuildToolPath/@EntryValue">/usr/local/share/dotnet/sdk/7.0.404/MSBuild.dll</s:String> <s:Int64 x:Key="/Default/Environment/Hierarchy/Build/BuildTool/MsbuildVersion/@EntryValue">1114112</s:Int64> - - <s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=7191ef50_002Dfb5e_002D4366_002D876f_002D7faeb1ecbf31/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="BuildEmptyDiagram" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> + <s:String x:Key="/Default/Environment/Highlighting/HighlightingSourceSnapshotLocation/@EntryValue">/Users/jakubkonvicka/Library/Caches/JetBrains/Rider2023.3/resharper-host/temp/Rider/vAny/CoverageData/_CodeToXMI.401400098/Snapshot/snapshot.utdcvr</s:String> + <s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=ea6b864b_002D2fca_002D4192_002D9701_002D8b0ec6a1f0b5/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="ClassDiagramTests" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> <TestAncestor> <TestId>NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ClassDiagramTests</TestId> </TestAncestor> -</SessionState></s:String></wpf:ResourceDictionary> \ No newline at end of file +</SessionState></s:String> + + </wpf:ResourceDictionary> \ No newline at end of file diff --git a/UnitTest/ClassDiagramTests.cs b/UnitTest/ClassDiagramTests.cs index 032149e60bbf768e58109e15d4fa9f0739c01e85..4541dbf54ab8917496b6721216e1a0398ea4bc50 100644 --- a/UnitTest/ClassDiagramTests.cs +++ b/UnitTest/ClassDiagramTests.cs @@ -271,10 +271,181 @@ public class ClassDiagramTests // Add specific assertions for generalization Assert.IsTrue(xmi.Contains("general=\"TestPackage-Class1\""), "XMI should contain Generalization"); } - - - - void ValidateSchema() + + [Test] + public void BuildDiagramWithGeneralizationAndAssociation() + { + var package = ClassDiagramBuilder.AddPackage("TestPackage"); + _ = package.AddClass("Class1", false); + var class2 = package.AddClass("Class2", false); + + class2.AddGeneralization("Class1"); + class2.AddAssociation("Class1", "name1",VisibilityType.Public, AssociationType.Association); + + var xmi = ClassDiagramBuilder.BuildDiagram(); + AssertCommonAssertions(xmi); + + // Add specific assertions for generalization + Assert.IsTrue(xmi.Contains("general=\"TestPackage-Class1\""), "XMI should contain Generalization"); + } + + [Test] + public void BuildDiagramWithGeneralizationAndAssociationAndProperty() + { + var package = ClassDiagramBuilder.AddPackage("TestPackage"); + _ = package.AddClass("Class1", false); + var class2 = package.AddClass("Class2", false); + + class2.AddGeneralization("Class1"); + class2.AddAssociation("Class1", "name1",VisibilityType.Public, AssociationType.Association); + class2.AddProperty("Property1", VisibilityType.Public, PropertyType.PrimitiveTypeString); + + var xmi = ClassDiagramBuilder.BuildDiagram(); + AssertCommonAssertions(xmi); + + // Add specific assertions for generalization + Assert.IsTrue(xmi.Contains("general=\"TestPackage-Class1\""), "XMI should contain Generalization"); + } + + [Test] + public void BuildDiagramWithGeneralizationAndAssociationAndOperation() + { + var package = ClassDiagramBuilder.AddPackage("TestPackage"); + _ = package.AddClass("Class1", false); + var class2 = package.AddClass("Class2", false); + + class2.AddGeneralization("Class1"); + class2.AddAssociation("Class1", "name1",VisibilityType.Public, AssociationType.Association); + class2.AddOperation("Operation1", PropertyType.PrimitiveTypeBoolean, VisibilityType.Public); + + var xmi = ClassDiagramBuilder.BuildDiagram(); + AssertCommonAssertions(xmi); + + // Add specific assertions for generalization + Assert.IsTrue(xmi.Contains("general=\"TestPackage-Class1\""), "XMI should contain Generalization"); + } + [Test] + public void BuildDiagramWithGeneralizationAndAssociationAndOperationAndProperty() + { + var package = ClassDiagramBuilder.AddPackage("TestPackage"); + _ = package.AddClass("Class1", false); + var class2 = package.AddClass("Class2", false); + + class2.AddGeneralization("Class1"); + class2.AddAssociation("Class1", "name1",VisibilityType.Public, AssociationType.Association); + class2.AddOperation("Operation1", PropertyType.PrimitiveTypeBoolean, VisibilityType.Public); + class2.AddProperty("Property1", VisibilityType.Public, PropertyType.PrimitiveTypeString); + + var xmi = ClassDiagramBuilder.BuildDiagram(); + AssertCommonAssertions(xmi); + + // Add specific assertions for generalization + Assert.IsTrue(xmi.Contains("general=\"TestPackage-Class1\""), "XMI should contain Generalization"); + } + [Test] + public void BuildDiagramWithGeneralizationAndAssociationAndOperationAndPropertyAndPackage() + { + var package = ClassDiagramBuilder.AddPackage("TestPackage"); + _ = package.AddClass("Class1", false); + var class2 = package.AddClass("Class2", false); + + class2.AddGeneralization("Class1"); + class2.AddAssociation("Class1", "name1",VisibilityType.Public, AssociationType.Association); + class2.AddOperation("Operation1", PropertyType.PrimitiveTypeBoolean, VisibilityType.Public); + class2.AddProperty("Property1", VisibilityType.Public, PropertyType.PrimitiveTypeString); + var package2 = ClassDiagramBuilder.AddPackage("TestPackage2"); + _ = package2.AddClass("Class3", false); + var class4 = package2.AddClass("Class4", false); + + class4.AddGeneralization("Class3"); + class4.AddAssociation("Class3", "name1",VisibilityType.Public, AssociationType.Association); + class4.AddOperation("Operation1", PropertyType.PrimitiveTypeBoolean, VisibilityType.Public); + class4.AddProperty("Property1", VisibilityType.Public, PropertyType.PrimitiveTypeString); + + var xmi = ClassDiagramBuilder.BuildDiagram(); + AssertCommonAssertions(xmi); + + // Add specific assertions for generalization + Assert.IsTrue(xmi.Contains("general=\"TestPackage-Class1\""), "XMI should contain Generalization"); + } + [Test] + public void BuildDiagramWithGeneralizationAndAssociationAndOperationAndPropertyAndPackageAndMultipleClasses() + { + var package = ClassDiagramBuilder.AddPackage("TestPackage"); + _ = package.AddClass("Class1", false); + var class2 = package.AddClass("Class2", false); + + class2.AddGeneralization("Class1"); + class2.AddAssociation("Class1", "name1",VisibilityType.Public, AssociationType.Association); + class2.AddOperation("Operation1", PropertyType.PrimitiveTypeBoolean, VisibilityType.Public); + class2.AddProperty("Property1", VisibilityType.Public, PropertyType.PrimitiveTypeString); + var package2 = ClassDiagramBuilder.AddPackage("TestPackage2"); + _ = package2.AddClass("Class3", false); + var class4 = package2.AddClass("Class4", false); + + class4.AddGeneralization("Class3"); + class4.AddAssociation("Class3", "name1",VisibilityType.Public, AssociationType.Association); + class4.AddOperation("Operation1", PropertyType.PrimitiveTypeBoolean, VisibilityType.Public); + class4.AddProperty("Property1", VisibilityType.Public, PropertyType.PrimitiveTypeString); + var package3 = ClassDiagramBuilder.AddPackage("TestPackage3"); + _ = package3.AddClass("Class5", false); + var class6 = package3.AddClass("Class6", false); + + class6.AddGeneralization("Class5"); + class6.AddAssociation("Class5", "name1",VisibilityType.Public, AssociationType.Association); + class6.AddOperation("Operation1", PropertyType.PrimitiveTypeBoolean, VisibilityType.Public); + class6.AddProperty("Property1", VisibilityType.Public, PropertyType.PrimitiveTypeString); + + var xmi = ClassDiagramBuilder.BuildDiagram(); + AssertCommonAssertions(xmi); + + // Add specific assertions for generalization + Assert.IsTrue(xmi.Contains("general=\"TestPackage-Class1\""), "XMI should contain Generalization"); + } + + [Test] + public void BuildDiagramWithGeneralizationAndAssociationAndOperationAndPropertyAndPackageAndMultipleClassesAndMultiplePackages() + { + var package = ClassDiagramBuilder.AddPackage("TestPackage"); + _ = package.AddClass("Class1", false); + var class2 = package.AddClass("Class2", false); + + class2.AddGeneralization("Class1"); + class2.AddAssociation("Class1", "name1", VisibilityType.Public, AssociationType.Association); + class2.AddOperation("Operation1", PropertyType.PrimitiveTypeBoolean, VisibilityType.Public); + class2.AddProperty("Property1", VisibilityType.Public, PropertyType.PrimitiveTypeString); + var package2 = ClassDiagramBuilder.AddPackage("TestPackage2"); + _ = package2.AddClass("Class3", false); + var class4 = package2.AddClass("Class4", false); + + class4.AddGeneralization("Class3"); + class4.AddAssociation("Class3", "name1", VisibilityType.Public, AssociationType.Association); + class4.AddOperation("Operation1", PropertyType.PrimitiveTypeBoolean, VisibilityType.Public); + class4.AddProperty("Property1", VisibilityType.Public, PropertyType.PrimitiveTypeString); + var package3 = ClassDiagramBuilder.AddPackage("TestPackage3"); + _ = package3.AddClass("Class5", false); + var class6 = package3.AddClass("Class6", false); + + class6.AddGeneralization("Class5"); + class6.AddAssociation("Class5", "name1", VisibilityType.Public, AssociationType.Association); + class6.AddOperation("Operation1", PropertyType.PrimitiveTypeBoolean, VisibilityType.Public); + class6.AddProperty("Property1", VisibilityType.Public, PropertyType.PrimitiveTypeString); + var package4 = ClassDiagramBuilder.AddPackage("TestPackage4"); + _ = package4.AddClass("Class7", false); + var class8 = package4.AddClass("Class8", false); + + class8.AddGeneralization("Class7"); + class8.AddAssociation("Class7", "name1", VisibilityType.Public, AssociationType.Association); + class8.AddOperation("Operation1", PropertyType.PrimitiveTypeBoolean, VisibilityType.Public); + class8.AddProperty("Property1", VisibilityType.Public, PropertyType.PrimitiveTypeString); + + var xmi = ClassDiagramBuilder.BuildDiagram(); + AssertCommonAssertions(xmi); + } + + + + void ValidateSchema() { // Path to your XSD file string xsdFilePath = "../../../Schema/XMI.xsd";