public static void Compare(Project projectA, Project projectB) { IRepository repositoryA = projectA.Repository; IRepository repositoryB = projectB.Repository; // Compare versions Assert.AreEqual <int>(repositoryA.Version, repositoryB.Version); int version = repositoryA.Version; // Compare Designs RepositoryComparer.Compare(((IStyleSetProvider)projectA).StyleSet, ((IStyleSetProvider)projectB).StyleSet, version); Compare(repositoryA.GetDesign(null), repositoryB.GetDesign(null), version); CompareObjectCount(repositoryA.GetDesigns(), repositoryB.GetDesigns()); Compare(repositoryA.GetDesigns(), repositoryB.GetDesigns(), version); // Compare Templates including TerminalMappings and ModelMappings CompareObjectCount(repositoryA.GetTemplates(), repositoryB.GetTemplates()); foreach (Template templateA in repositoryA.GetTemplates()) { RepositoryComparer.Compare(templateA, repositoryB.GetTemplate(templateA.Name), version); } // Compare ModelObjects CompareModelObjects(repositoryA, null, repositoryB, null, version); // Compare diagrams including layers and shapes CompareObjectCount(repositoryA.GetDiagrams(), repositoryB.GetDiagrams()); foreach (Diagram diagramA in repositoryA.GetDiagrams()) { Diagram diagramB = repositoryB.GetDiagram(diagramA.Name); // Shapes must not be loaded after loading the diagram if (repositoryB is CachedRepository && ((CachedRepository)repositoryB).Store is AdoNetStore) { Assert.IsTrue(diagramB.Shapes.Count == 0); } // Now load the shapes repositoryA.GetDiagramShapes(diagramA); repositoryB.GetDiagramShapes(diagramB); // Compare RepositoryComparer.Compare(diagramA, diagramB, version); } }
public static void Compare(Project savedProject, Project loadedProject) { IRepository savedRepository = savedProject.Repository; IRepository loadedRepository = loadedProject.Repository; // Compare versions Assert.AreEqual <int>(savedRepository.Version, loadedRepository.Version); int version = savedRepository.Version; // Compare Designs RepositoryComparer.Compare(((IStyleSetProvider)savedProject).StyleSet, ((IStyleSetProvider)loadedProject).StyleSet, version); CompareObjectCount(savedRepository.GetDesigns(), loadedRepository.GetDesigns()); RepositoryComparer.Compare(savedProject.Design, loadedProject.Design, version); foreach (Design savedDesign in savedRepository.GetDesigns()) { if (savedDesign == savedProject.Design) { continue; } // ToDo: Clarify if the loaded projectDesign should be returned when calling GetDesigns() RepositoryComparer.Compare(savedDesign, loadedRepository.GetDesign(((IEntity)savedDesign).Id), version); } // Compare Templates including TerminalMappings and ModelMappings CompareObjectCount(savedRepository.GetTemplates(), loadedRepository.GetTemplates()); foreach (Template savedTemplate in savedRepository.GetTemplates()) { RepositoryComparer.Compare(savedTemplate, loadedRepository.GetTemplate(savedTemplate.Id), version); } // Compare ModelObjects CompareModelObjects(savedRepository, null, loadedRepository, null, version); // Compare diagrams including layers and shapes CompareObjectCount(savedRepository.GetDiagrams(), loadedRepository.GetDiagrams()); foreach (Diagram savedDiagram in savedRepository.GetDiagrams()) { RepositoryComparer.Compare(savedDiagram, loadedRepository.GetDiagram(((IEntity)savedDiagram).Id), version); } }