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); }