Exemple #1
0
        public void AddUsageRelationTo_Returns_Success_And_Adds_New_Relation()
        {
            //Arrange
            var interfaceId = A <int>();

            _sut.UsageRelations.Add(new SystemRelation(new ItSystemUsage()));
            var itInterface = new ItInterface
            {
                Id = interfaceId
            };
            var destination = new ItSystemUsage
            {
                Id             = A <int>(),
                OrganizationId = _sut.OrganizationId,
                ItSystem       = new ItSystem
                {
                    ItInterfaceExhibits =
                    {
                        new ItInterfaceExhibit
                        {
                            ItInterface = itInterface
                        }
                    }
                }
            };
            var itContract = new ItContract {
                OrganizationId = _sut.OrganizationId
            };
            var frequencyType = new RelationFrequencyType();
            var description   = A <string>();
            var reference     = A <string>();

            //Act
            var result = _sut.AddUsageRelationTo(destination, itInterface, description, reference, frequencyType, itContract);

            //Assert
            Assert.True(result.Ok);
            var newRelation = result.Value;

            Assert.True(_sut.UsageRelations.Contains(newRelation));
            Assert.Equal(2, _sut.UsageRelations.Count); //existing + the new one
            Assert.Equal(itContract, newRelation.AssociatedContract);
            Assert.Equal(frequencyType, newRelation.UsageFrequency);
            Assert.Equal(destination, newRelation.ToSystemUsage);
            Assert.Equal(description, newRelation.Description);
            Assert.NotNull(newRelation.Reference);
            Assert.Equal(reference, newRelation.Reference);
        }
        public void ExecuteMigration_Returns_Ok_And_Resets_RelationInterface_From_UsedByRelation_With_Interface()
        {
            //Arrange
            var fromSystemUsage       = CreateSystemUsage();
            var migrateToSystem       = CreateSystem();
            var toSystemUsage         = CreateSystemUsage();
            var relationInterface     = CreateInterface();
            var relationFrequenceType = new RelationFrequencyType()
            {
                Id   = A <int>(),
                Name = A <string>()
            };
            var relation = new SystemRelation(fromSystemUsage)
            {
                ToSystemUsageId     = toSystemUsage.Id,
                RelationInterfaceId = relationInterface.Id,
                RelationInterface   = relationInterface,
                UsageFrequencyId    = relationFrequenceType.Id,
                UsageFrequency      = relationFrequenceType,
                Description         = A <string>()
            };

            ExpectAllowedGetMigration(fromSystemUsage.Id, fromSystemUsage, migrateToSystem);
            ExpectAllowModifyReturns(fromSystemUsage, true);
            var usageRelations  = new List <SystemRelation>();
            var usedByRelations = new List <SystemRelation>
            {
                relation
            };

            fromSystemUsage = AddRelationsToSystemUsage(fromSystemUsage, usageRelations, usedByRelations);
            ExpectSystemUsageServiceToRemoveRelationInterface(usedByRelations.First(), true);
            var transaction = ExpectBeginTransaction();

            //Act
            var result = _sut.ExecuteSystemUsageMigration(fromSystemUsage.Id, migrateToSystem.Id);

            //Assert
            Assert.True(result.Ok);
            var migration = result.Value;

            VerifyModifyRelationCalled(relation, Times.Once());
            Assert.Equal(relation.Id, migration.UsedByRelations.First().Id);
            VerifySystemMigrationCommitted(fromSystemUsage, migrateToSystem, transaction);
        }
        public void GetSystemUsageMigration_Returns_Ok_With_Affected_Relation_From_UsedByRelation_With_Interface()
        {
            //Arrange
            var fromSystemUsage       = CreateSystemUsage();
            var migrateToSystem       = CreateSystem();
            var toSystemUsage         = CreateSystemUsage();
            var relationInterface     = CreateInterface();
            var relationFrequenceType = new RelationFrequencyType()
            {
                Id   = A <int>(),
                Name = A <string>()
            };
            var relation = new SystemRelation(fromSystemUsage)
            {
                ToSystemUsageId     = toSystemUsage.Id,
                RelationInterfaceId = relationInterface.Id,
                RelationInterface   = relationInterface,
                UsageFrequencyId    = relationFrequenceType.Id,
                UsageFrequency      = relationFrequenceType,
                Description         = A <string>()
            };

            ExpectAllowedGetMigration(fromSystemUsage.Id, fromSystemUsage, migrateToSystem);
            var usageRelations  = new List <SystemRelation>();
            var usedByRelations = new List <SystemRelation>
            {
                relation
            };

            fromSystemUsage = AddRelationsToSystemUsage(fromSystemUsage, usageRelations, usedByRelations);

            //Act
            var result = _sut.GetSystemUsageMigration(fromSystemUsage.Id, migrateToSystem.Id);

            //Assert
            Assert.True(result.Ok);
            var migration = result.Value;

            Assert.Equal(1, migration.AffectedSystemRelations.Count);
            Assert.Equal(relation.Id, migration.AffectedSystemRelations.First().Id);
            Assert.Equal(relationInterface.Id, migration.AffectedSystemRelations.First().RelationInterfaceId);
            Assert.Equal(relation.Description, migration.AffectedSystemRelations.First().Description);
            Assert.Equal(relationFrequenceType.Id, migration.AffectedSystemRelations.First().UsageFrequencyId);
            Assert.Equal(relationFrequenceType.Name, migration.AffectedSystemRelations.First().UsageFrequency.Name);
        }