Ejemplo n.º 1
0
        public void ImportModel(string dsiFilename, string dsmFilename, bool autoPartition, bool recordChanges, bool compressDsmFile, IProgress <ProgressInfo> progress)
        {
            string   processStep = "Builder";
            Assembly assembly    = Assembly.GetEntryAssembly();
            DsiModel dsiModel    = new DsiModel(processStep, assembly);

            dsiModel.Load(dsiFilename, progress);

            IImportPolicy importPolicy;

            if (!File.Exists(dsmFilename) || !recordChanges)
            {
                importPolicy = new CreateNewModelPolicy(_dsmModel);
            }
            else
            {
                importPolicy = new UpdateExistingModelPolicy(_dsmModel, dsmFilename, _actionManager, progress);
            }

            DsmBuilder builder = new DsmBuilder(dsiModel, _dsmModel, importPolicy, autoPartition);

            builder.Build(progress);
            _actionStore.SaveToModel();
            _dsmModel.SaveModel(dsmFilename, compressDsmFile, progress);
        }
Ejemplo n.º 2
0
        public void WhenBuildingDsmThenMetaDataIsCopied()
        {
            DsmBuilder builder = new DsmBuilder(_dsiModel.Object, _dsmModel.Object, _importPolicy.Object, false);

            builder.Build(null);

            _importPolicy.Verify(x => x.ImportMetaDataItem(MetaDataGroup, MetaDataItemName1, MetaDataItemValue1), Times.Once());
            _importPolicy.Verify(x => x.ImportMetaDataItem(MetaDataGroup, MetaDataItemName2, MetaDataItemValue2), Times.Once());
            _importPolicy.Verify(x => x.ImportMetaDataItem(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Exactly(2));
        }
Ejemplo n.º 3
0
        public void WhenBuildingDsmThenRelationsAreResolvedAndAdded()
        {
            DsmBuilder builder = new DsmBuilder(_dsiModel.Object, _dsmModel.Object, _importPolicy.Object, false);

            builder.Build(null);

            _importPolicy.Verify(x => x.ImportRelation(DsmElementIdC, DsmElementIdD, DsiRelationTypeAbCtoAbd, DsiRelationWeightAbCtoAbd), Times.Exactly(1)); // Between a.b.c and a.b.d
            _importPolicy.Verify(x => x.ImportRelation(DsmElementIdD, DsmElementIdE, DsiRelationTypeAbDtoE, DsiRelationWeightAbDtoE), Times.Exactly(1));     // Between a.b.d and a
            _importPolicy.Verify(x => x.ImportRelation(DsmElementIdC, DsmElementIdE, DsiRelationTypeAbCtoE, DsiRelationWeightAbCtoE), Times.Exactly(1));     // Between a.b.d and a
            _importPolicy.Verify(x => x.ImportRelation(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>(), It.IsAny <int>()), Times.Exactly(3));
        }
Ejemplo n.º 4
0
        public void WhenBuildingDsmThenElementHierarchyIsCreated()
        {
            DsmBuilder builder = new DsmBuilder(_dsiModel.Object, _dsmModel.Object, _importPolicy.Object, false);

            builder.Build(null);

            _importPolicy.Verify(x => x.ImportElement(DsiElementNameA, DsmElementNameA, string.Empty, null), Times.Exactly(2));                       // For a.b.c and a.b.d
            _importPolicy.Verify(x => x.ImportElement(DsiElementNameAb, DsmElementNameB, string.Empty, _dsmElementA.Object), Times.Exactly(2));       // For a.b.c and a.b.d
            _importPolicy.Verify(x => x.ImportElement(DsiElementNameAbc, DsmElementNameC, DsiElementTypeAbc, _dsmElementB.Object), Times.Exactly(1)); // For a.b.c
            _importPolicy.Verify(x => x.ImportElement(DsiElementNameAbd, DsmElementNameD, DsiElementTypeAbd, _dsmElementB.Object), Times.Exactly(1)); // For a.b.d
            _importPolicy.Verify(x => x.ImportElement(DsiElementNameE, DsmElementNameE, DsiElementTypeE, null), Times.Exactly(1));                    // For e
            _importPolicy.Verify(x => x.ImportElement(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <IDsmElement>()), Times.Exactly(7));
        }