public async Task Post_SystemRelation_Returns_201(bool withContract, bool withInterface, bool withFrequency) { //Arrange var input = await PrepareFullRelationAsync(withContract, withInterface, withFrequency); //Act using (var response = await SystemRelationHelper.SendPostRelationRequestAsync(input)) { //Assert Assert.Equal(HttpStatusCode.Created, response.StatusCode); var relationsFrom = (await SystemRelationHelper.GetRelationsFromAsync(input.FromUsageId)).ToList(); var relationsTo = (await SystemRelationHelper.GetRelationsToAsync(input.ToUsageId)).ToList(); var fromDto = Assert.Single(relationsFrom); var toDto = Assert.Single(relationsTo); fromDto.ToExpectedObject().ShouldMatch(toDto); //Same relation should yield same data at the dto level Assert.Equal(input.FromUsageId, fromDto.FromUsage.Id); Assert.Equal(input.ToUsageId, fromDto.ToUsage.Id); Assert.Equal(input.Description, fromDto.Description); Assert.Equal(input.Reference, fromDto.Reference); Assert.Equal(input.ContractId, fromDto.Contract?.Id); Assert.Equal(input.InterfaceId, fromDto.Interface?.Id); Assert.Equal(input.FrequencyTypeId, fromDto.FrequencyType?.Id); } }
public async Task Can_Edit_SystemUsageWithRelations_Resets_Interface() { //Arrange var input = await PrepareFullRelationAsync(true, true, true); await SystemRelationHelper.SendPostRelationRequestAsync(input); var relations = await SystemRelationHelper.GetRelationsFromAsync(input.FromUsageId); var relationToEdit = relations.Single(); var edited = PrepareEditedRelation(relationToEdit, relationToEdit.ToUsage, relationToEdit.Contract, relationToEdit.FrequencyType, null); //Act using (var response = await SystemRelationHelper.SendPatchRelationRequestAsync(edited)) { //Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); var relationDTO = await response.ReadResponseBodyAsKitosApiResponseAsync <SystemRelationDTO>(); Assert.Equal(input.FromUsageId, relationDTO.FromUsage.Id); Assert.Equal(edited.ToUsage.Id, relationDTO.ToUsage.Id); Assert.Equal(edited.Description, relationDTO.Description); Assert.Equal(edited.Reference, relationDTO.Reference); Assert.NotNull(relationDTO.FrequencyType); Assert.NotNull(relationDTO.Contract); Assert.Null(relationDTO.Interface); } }
public async Task Can_Get_SystemRelations_AssociatedWithContract() { //Arrange var input = await PrepareFullRelationAsync(true, false, false); //Act using (var response = await SystemRelationHelper.SendPostRelationRequestAsync(input)) { //Assert Assert.Equal(HttpStatusCode.Created, response.StatusCode); var relationsToContract = (await SystemRelationHelper.GetRelationsAssociatedWithContractAsync(input.ContractId.GetValueOrDefault(-1))).ToList(); var originalRelations = (await SystemRelationHelper.GetRelationsFromAsync(input.FromUsageId)).ToList(); var relationFromContractResponse = Assert.Single(relationsToContract); var relationFromOriginalResponse = Assert.Single(originalRelations); relationFromContractResponse.ToExpectedObject().ShouldMatch(relationFromOriginalResponse); //Same relation should yield same data at the dto level } }
public async Task Deleting_ToSystemUsage_Removes_Relation() { //Arrange var input = await PrepareFullRelationAsync(false, false, false); //Act using (var response = await SystemRelationHelper.SendPostRelationRequestAsync(input)) { Assert.Equal(HttpStatusCode.Created, response.StatusCode); var relation = await response.ReadResponseBodyAsKitosApiResponseAsync <SystemRelationDTO>(); using (var deleteUsageResponse = await ItSystemHelper.SendRemoveUsageAsync(input.ToUsageId, TestEnvironment.DefaultOrganizationId)) { //Assert Assert.Equal(HttpStatusCode.OK, deleteUsageResponse.StatusCode); var relations = (await SystemRelationHelper.GetRelationsFromAsync(input.FromUsageId)).ToList(); Assert.Empty(relations.Where(x => x.Id == relation.Id)); } } }