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">&lt;SessionState ContinuousTestingMode="0" IsActive="True" Name="BuildEmptyDiagram" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
+	<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">&lt;SessionState ContinuousTestingMode="0" IsActive="True" Name="ClassDiagramTests" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
   &lt;TestAncestor&gt;
     &lt;TestId&gt;NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ClassDiagramTests&lt;/TestId&gt;
   &lt;/TestAncestor&gt;
-&lt;/SessionState&gt;</s:String></wpf:ResourceDictionary>
\ No newline at end of file
+&lt;/SessionState&gt;</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";