Beispiel #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);
        }
Beispiel #2
0
        public void WhenImportIsFinalizedThenMakeTimeStampActionIsExecuted()
        {
            UpdateExistingModelPolicy policy = new UpdateExistingModelPolicy(_dsmModel.Object, DsmFilename, _actionManager.Object, null);

            policy.FinalizeImport(null);

            _actionManager.Verify(x => x.Execute(It.IsAny <MakeSnapshotAction>()), Times.Once);
        }
Beispiel #3
0
        public void WhenImportIsFinalizedThenElementOrderIsAssigned()
        {
            UpdateExistingModelPolicy policy = new UpdateExistingModelPolicy(_dsmModel.Object, DsmFilename, _actionManager.Object, null);

            policy.FinalizeImport(null);

            _dsmModel.Verify(x => x.AssignElementOrder(), Times.Once());
        }
Beispiel #4
0
        public void WhenMetaDataItemIsImportedThenMetaDataItemIsAddedToModel()
        {
            UpdateExistingModelPolicy policy = new UpdateExistingModelPolicy(_dsmModel.Object, DsmFilename, _actionManager.Object, null);

            _dsmModel.Setup(x => x.AddMetaData(MetaDataGroup, MetaDataItemName, MetaDataItemValue)).Returns(_createMetaDataItem.Object);

            IMetaDataItem metaDataItem = policy.ImportMetaDataItem(MetaDataGroup, MetaDataItemName, MetaDataItemValue);

            Assert.AreEqual(_createMetaDataItem.Object, metaDataItem);

            _dsmModel.Verify(x => x.AddMetaData(MetaDataGroup, MetaDataItemName, MetaDataItemValue), Times.Once());
        }
Beispiel #5
0
        public void GivenRelationIsInModelWithTheOtherWeightWhenRelationIsImportedThenRelationUpdateWeigthActionIsExecuted()
        {
            IDsmRelation foundRelation = _existingRelation.Object;

            _dsmModel.Setup(x => x.FindRelation(ConsumerId, ProviderId, RelationType)).Returns(foundRelation);

            UpdateExistingModelPolicy policy = new UpdateExistingModelPolicy(_dsmModel.Object, DsmFilename, _actionManager.Object, null);
            IDsmRelation relation            = policy.ImportRelation(ConsumerId, ProviderId, RelationType, NewRelationWeight);

            Assert.AreEqual(_existingRelation.Object, relation);

            _actionManager.Verify(x => x.Execute(It.IsAny <RelationChangeWeightAction>()), Times.Once);
        }
Beispiel #6
0
        public void GivenElementIsInModelWhenElementIsImportedThenNoActionIsTaken()
        {
            IDsmElement foundElement = _existingElement.Object;

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

            UpdateExistingModelPolicy policy = new UpdateExistingModelPolicy(_dsmModel.Object, DsmFilename, _actionManager.Object, null);
            IDsmElement element = policy.ImportElement(ElementFullName, ElementName, ElementType, _elementParent.Object);

            Assert.AreEqual(_existingElement.Object, element);

            _actionManager.Verify(x => x.Execute(It.IsAny <IAction>()), Times.Never);
        }
Beispiel #7
0
        public void GivenRelationIsInModelButNotImportedAgainWhenImportIsFinalizedThenRelationDeleteActionIsExecuted()
        {
            IDsmRelation foundRelation = _existingRelation.Object;

            _dsmModel.Setup(x => x.FindRelation(ConsumerId, ProviderId, RelationType)).Returns(foundRelation);
            List <IDsmRelation> relations = new List <IDsmRelation>()
            {
                _existingRelation.Object
            };

            _dsmModel.Setup(x => x.GetRelations()).Returns(relations);

            UpdateExistingModelPolicy policy = new UpdateExistingModelPolicy(_dsmModel.Object, DsmFilename, _actionManager.Object, null);

            policy.FinalizeImport(null);

            _actionManager.Verify(x => x.Execute(It.IsAny <RelationDeleteAction>()), Times.Once);
        }
Beispiel #8
0
        public void GivenElementIsInModelButNotImportedAgainWhenImportIsFinalizedThenElementDeleteActionIsExecuted()
        {
            IDsmElement foundElement = _existingElement.Object;

            _dsmModel.Setup(x => x.GetElementByFullname(ElementFullName)).Returns(foundElement);
            List <IDsmElement> elements = new List <IDsmElement>()
            {
                _existingElement.Object
            };

            _dsmModel.Setup(x => x.GetElements()).Returns(elements);

            UpdateExistingModelPolicy policy = new UpdateExistingModelPolicy(_dsmModel.Object, DsmFilename, _actionManager.Object, null);

            policy.FinalizeImport(null);

            _actionManager.Verify(x => x.Execute(It.IsAny <ElementDeleteAction>()), Times.Once);
        }
Beispiel #9
0
        public void WhenPolicyIsConstructedThenModelIsLoaded()
        {
            UpdateExistingModelPolicy policy = new UpdateExistingModelPolicy(_dsmModel.Object, DsmFilename, _actionManager.Object, null);

            _dsmModel.Verify(x => x.LoadModel(DsmFilename, null), Times.Once());
        }