public async Task Update_Returns_Ok() { _seeder.ResetMessageTemplates(); var original = _tplColidEntrySubscription; _output.WriteLine($"before: {original}"); var updatedSubject = "This is a new subject"; var updatedBody = "Super special new body 5000"; var updatedDto = new MessageTemplateBuilder() .WithType(MessageType.ColidEntrySubscriptionUpdate) .WithBody(updatedBody) .WithSubject(updatedSubject) .BuildDto(); var response = await Client.PutAsync($"{PATH}", _api.BuildJsonHttpContent(updatedDto)); var stringResponse = await response.Content.ReadAsStringAsync(); _output.WriteLine($"after: {stringResponse}"); response.EnsureSuccessStatusCode(); var responseMessage = JsonConvert.DeserializeObject <MessageTemplate>(stringResponse); Assert.NotNull(responseMessage); Assert.NotEqual(original.Body, responseMessage.Body); Assert.NotEqual(original.Subject, responseMessage.Subject); Assert.Equal(updatedDto.Body, responseMessage.Body); Assert.Equal(updatedDto.Subject, responseMessage.Subject); _seeder.ResetMessageTemplates(); }
public void TryGetOneByDto_Should_ReturnFalse_IfEntityDoesNotExist() { _seeder.ClearMessageTemplates(); var dto = new MessageTemplateBuilder().WithType(MessageType.StoredQueryResult).WithSubject("bliblablubb123123").WithBody("some nonsense here").BuildDto(); var result = _repo.TryGetOne(dto, out var entity); Assert.False(result); Assert.Null(entity); _seeder.ResetMessageTemplates(); }
public void CreateAsync_Should_ThrowException_IfTemplateAlreadyExists() { MessageTemplate _; _mockMessageTemplateRepository.Setup(x => x.TryGetOne(MessageType.StoredQueryResult, out _)).Returns(true); var template = new MessageTemplateBuilder().WithType(MessageType.StoredQueryResult).WithSubject("aaa").WithBody("bbb").BuildDto(); Assert.ThrowsAsync <EntityAlreadyExistsException>(() => _templateService.CreateAsync(template)); }
public void Update_Should_ThrowException_IfTemplateIsUnchanged() { MessageTemplate _; _mockMessageTemplateRepository.Setup(x => x.TryGetOne(It.IsAny <MessageTemplateDto>(), out _)).Returns(true); var templateDto = new MessageTemplateBuilder().WithType(MessageType.StoredQueryResult).WithSubject("aaa").WithBody("bbb").BuildDto(); Assert.Throws <EntityNotChangedException>(() => _templateService.Update(templateDto)); }
public void CreateAsync_Should_InvokeMessageTemplateRepositoryCreateAsync_Once() { var template = new MessageTemplateBuilder().WithType(MessageType.StoredQueryResult).WithSubject("aaa").WithBody("bbb").BuildDto(); _templateService.CreateAsync(template); MessageTemplate _; _mockMessageTemplateRepository.Verify(x => x.TryGetOne(It.IsAny <MessageType>(), out _), Times.Once); _mockMessageTemplateRepository.Verify(x => x.CreateAsync(It.IsAny <MessageTemplate>()), Times.Once); }
public async Task Post_Returns_BadRequest_IfTemplateAlreadyExists() { _seeder.ResetMessageTemplates(); var unchangedTpl = new MessageTemplateBuilder() .WithType(_tplColidEntrySubscription.Type) .WithBody(_tplColidEntrySubscription.Body) .WithSubject(_tplColidEntrySubscription.Subject) .BuildDto(); await _api.Post_ShouldReturn_BadRequest_IfEntityAlreadyExists(PATH, _api.BuildJsonHttpContent(unchangedTpl)); }
public void TryGetOneByDto_Should_ReturnTrue_IfEntityExists() { _seeder.ResetMessageTemplates(); var existing = TestData.GetPreconfiguredMessageTemplates().Where(t => t.Type.Equals(MessageType.ColidEntrySubscriptionUpdate)).FirstOrDefault(); var dto = new MessageTemplateBuilder().WithType(existing.Type).WithSubject(existing.Subject).WithBody(existing.Body).BuildDto(); var result = _repo.TryGetOne(dto, out var entity); Assert.NotNull(result); Assert.True(result); Assert.NotNull(entity.Id); }
public async Task Update_Returns_Ok_IfTemplateHasntChanged() { _seeder.ResetMessageTemplates(); var unchangedTpl = new MessageTemplateBuilder() .WithType(_tplColidEntrySubscription.Type) .WithBody(_tplColidEntrySubscription.Body) .WithSubject(_tplColidEntrySubscription.Subject) .BuildDto(); var response = await Client.PutAsync($"{PATH}", _api.BuildJsonHttpContent(unchangedTpl)); await _api.PrintResponseContentAndAssertStatusCode(response, HttpStatusCode.OK); }
public void Update_Should_InvokeMessageTemplateRepositoryUpdate_Once() { var template = new MessageTemplateBuilder().WithType(MessageType.StoredQueryResult).WithSubject("bbb").WithBody("ccc").Build(); _mockMessageTemplateRepository.Setup(x => x.GetOne(MessageType.StoredQueryResult)).Returns(template); var templateDto = new MessageTemplateBuilder().WithType(MessageType.StoredQueryResult).WithSubject("aaa").WithBody("bbb").BuildDto(); _templateService.Update(templateDto); MessageTemplate _; _mockMessageTemplateRepository.Verify(x => x.TryGetOne(It.IsAny <MessageTemplateDto>(), out _), Times.Once); _mockMessageTemplateRepository.Verify(x => x.GetOne(It.IsAny <MessageType>()), Times.Once); _mockMessageTemplateRepository.Verify(x => x.Update(It.IsAny <MessageTemplate>()), Times.Once); }
private static MessageTemplateBuilder GenerateSampleMessageTemplateForColidEntrySubscription(MessageType messageType) { var msgTplBuilder = new MessageTemplateBuilder() .WithType(messageType); if (MessageType.ColidEntrySubscriptionUpdate.Equals(messageType)) { return(msgTplBuilder .WithSubject($"Updated: %COLID_LABEL%") .WithBody( "The resource with title %COLID_LABEL% with the pid uri %COLID_PID_URI% has been updated in colid. Take a direct look by clicking on the uri.")); } // else delete return(msgTplBuilder .WithSubject($"Deleted: %COLID_LABEL%") .WithBody( "The resource with title %COLID_LABEL% with the pid uri %COLID_PID_URI% has been deleted in colid.")); }
public async Task CreateAsync_Should_CreateAndReturnEntity() { _seeder.ClearMessageTemplates(); var expectedEntity = new MessageTemplateBuilder() .WithId(555) .WithType(MessageType.ColidEntrySubscriptionUpdate) .WithSubject("subj") .WithBody("body") .Build(); var entity = await _intRepo.CreateAsync(expectedEntity); Assert.NotNull(entity); Assert.NotNull(entity.CreatedAt); Assert.NotNull(entity.ModifiedAt); Assert.Equal(expectedEntity.Type, entity.Type); Assert.Equal(expectedEntity.Subject, entity.Subject); Assert.Equal(expectedEntity.Body, entity.Body); _seeder.ResetMessageTemplates(); }