예제 #1
0
        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);
        }
예제 #6
0
        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);
        }
예제 #8
0
        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);
        }
예제 #10
0
        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."));
        }
예제 #11
0
        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();
        }