示例#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);
        }
示例#2
0
        public void WhenImportIsFinalizedThenElementOrderIsAssigned()
        {
            CreateNewModelPolicy policy = new CreateNewModelPolicy(_dsmModel.Object);

            policy.FinalizeImport(null);

            _dsmModel.Verify(x => x.AssignElementOrder(), Times.Once());
        }
示例#3
0
        public void WhenMetaDataItemIsImportedThenMetaDataItemIsAddedToModel()
        {
            _dsmModel.Setup(x => x.AddMetaData(MetaDataGroup, MetaDataItemName, MetaDataItemValue)).Returns(_createMetaDataItem.Object);

            CreateNewModelPolicy policy       = new CreateNewModelPolicy(_dsmModel.Object);
            IMetaDataItem        metaDataItem = policy.ImportMetaDataItem(MetaDataGroup, MetaDataItemName, MetaDataItemValue);

            Assert.AreEqual(_createMetaDataItem.Object, metaDataItem);

            _dsmModel.Verify(x => x.AddMetaData(MetaDataGroup, MetaDataItemName, MetaDataItemValue), Times.Once());
        }
示例#4
0
        public void WhenRelationIsImportedThenRelationIsAddedToModel()
        {
            _dsmModel.Setup(x => x.AddRelation(ConsumerId, ProviderId, RelationType, RelationWeight)).Returns(_createdRelation.Object);

            CreateNewModelPolicy policy   = new CreateNewModelPolicy(_dsmModel.Object);
            IDsmRelation         relation = policy.ImportRelation(ConsumerId, ProviderId, RelationType, RelationWeight);

            Assert.AreEqual(_createdRelation.Object, relation);

            _dsmModel.Verify(x => x.AddRelation(ConsumerId, ProviderId, RelationType, RelationWeight), Times.Once());
        }
示例#5
0
        public void GivenElementIsInModelWhenElementIsImportedThenElementIsNotAddedAgainToModel()
        {
            IDsmElement foundElement = _existingElement.Object;

            _dsmModel.Setup(x => x.GetElementByFullname(ElementFullName)).Returns(foundElement);

            CreateNewModelPolicy policy  = new CreateNewModelPolicy(_dsmModel.Object);
            IDsmElement          element = policy.ImportElement(ElementFullName, ElementName, ElementType, _elementParent.Object);

            Assert.AreEqual(_existingElement.Object, element);

            _dsmModel.Verify(x => x.AddElement(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int?>()), Times.Never());
        }
示例#6
0
        public void GivenElementIsNotInModelWhenElementIsImportedThenElementIsAddedToModel()
        {
            IDsmElement foundElement = null;

            _dsmModel.Setup(x => x.GetElementByFullname(ElementFullName)).Returns(foundElement);
            _dsmModel.Setup(x => x.AddElement(ElementName, ElementType, ElementParentId)).Returns(_createdElement.Object);

            CreateNewModelPolicy policy  = new CreateNewModelPolicy(_dsmModel.Object);
            IDsmElement          element = policy.ImportElement(ElementFullName, ElementName, ElementType, _elementParent.Object);

            Assert.AreEqual(_createdElement.Object, element);

            _dsmModel.Verify(x => x.AddElement(ElementName, ElementType, ElementParentId), Times.Once());
        }
示例#7
0
        public void WhenPolicyIsConstructedThenModelIsCleared()
        {
            CreateNewModelPolicy policy = new CreateNewModelPolicy(_dsmModel.Object);

            _dsmModel.Verify(x => x.Clear(), Times.Once());
        }