Exemple #1
0
        public async Task should_fail_when_endpoint_not_found()
        {
            var endpoint = new Mongo.Infrastructure.Entities.ServiceEndpoint()
            {
                Id       = Guid.NewGuid(),
                Address  = "ipsum",
                Protocol = "dolor",
                Active   = false
            };
            var service = new Mongo.Infrastructure.Entities.Service()
            {
                Id        = Guid.NewGuid(),
                Active    = false,
                Name      = "lorem",
                Endpoints = new[] { endpoint }
            };
            var mockRepo = RepositoryUtils.MockRepository <Mongo.Infrastructure.Entities.Service>(service);

            var mockDbContext = new Mock <IDbContext>();

            mockDbContext.Setup(db => db.Services).Returns(mockRepo.Object);

            var sut     = new RemoveEndpointValidator(mockDbContext.Object);
            var command = new RemoveEndpoint(service.Id, Guid.NewGuid());
            var result  = await sut.ValidateAsync(command);

            result.Success.Should().BeFalse();
            result.Errors.Any(e => e.Context == "endpoint" && e.Message.Contains(command.EndpointId.ToString())).Should().BeTrue();
        }
Exemple #2
0
        public async Task <IActionResult> DeleteEndpoint([FromBody] RemoveEndpoint model)
        {
            if (null == model)
            {
                throw new ArgumentNullException(nameof(model));
            }

            await _servicesProxy.DeleteEndpoint(model);

            return(this.Ok());
        }
Exemple #3
0
        public async Task should_throw_when_service_not_found()
        {
            var command = new RemoveEndpoint(Guid.NewGuid(), Guid.NewGuid());

            var mockRepo = RepositoryUtils.MockRepository <Mongo.Infrastructure.Entities.Service>();

            var mockDbContext = new Mock <IDbContext>();

            mockDbContext.Setup(db => db.Services).Returns(mockRepo.Object);

            var validator = new NullValidator <RemoveEndpoint>();

            var sut = new RemoveEndpointHandler(mockDbContext.Object, validator);
            await Assert.ThrowsAsync <NullReferenceException>(() => sut.Handle(command));
        }
Exemple #4
0
        public async Task should_not_remove_endpoints_if_none_found()
        {
            var endpoint1 = new Mongo.Infrastructure.Entities.ServiceEndpoint()
            {
                Id       = Guid.NewGuid(),
                Active   = false,
                Address  = "dolor",
                Protocol = "ipsum"
            };
            var endpoint2 = new Mongo.Infrastructure.Entities.ServiceEndpoint()
            {
                Id       = Guid.NewGuid(),
                Active   = false,
                Address  = "dolor",
                Protocol = "amet"
            };
            var service = new Mongo.Infrastructure.Entities.Service()
            {
                Id        = Guid.NewGuid(),
                Name      = "lorem",
                Active    = false,
                Endpoints = new[]
                {
                    endpoint1, endpoint2
                }
            };

            var mockRepo = RepositoryUtils.MockRepository(service);

            var mockDbContext = new Mock <IDbContext>();

            mockDbContext.Setup(db => db.Services).Returns(mockRepo.Object);

            var validator = new NullValidator <RemoveEndpoint>();

            var sut = new RemoveEndpointHandler(mockDbContext.Object, validator);

            var command = new RemoveEndpoint(service.Id, Guid.NewGuid());
            await sut.Handle(command);

            mockRepo.Verify(m => m.UpsertOneAsync(It.IsAny <Expression <Func <Mongo.Infrastructure.Entities.Service, bool> > >(),
                                                  It.Is <Mongo.Infrastructure.Entities.Service>(r =>
                                                                                                r.Id == service.Id &&
                                                                                                null != r.Endpoints && 2 == r.Endpoints.Count())
                                                  ), Times.Once());
        }
Exemple #5
0
        public async Task DeleteEndpoint(RemoveEndpoint dto)
        {
            if (null == dto)
            {
                throw new ArgumentNullException(nameof(dto));
            }

            var request = new RequestData("/services/endpoint/", dto);

            var response = await _servicesApiClient.DeleteAsync(request);

            if (null == response)
            {
                throw new System.Net.Http.HttpRequestException($"unable to perform DELETE request to '{request.Url}'");
            }

            await response.AssertSuccessfulAsync();
        }
Exemple #6
0
        public async Task should_throw_when_service_has_null_endpoints()
        {
            var command = new RemoveEndpoint(Guid.NewGuid(), Guid.NewGuid());

            var service = new Mongo.Infrastructure.Entities.Service()
            {
                Id        = command.ServiceId,
                Active    = false,
                Endpoints = null
            };

            var mockRepo = RepositoryUtils.MockRepository(service);

            var mockDbContext = new Mock <IDbContext>();

            mockDbContext.Setup(db => db.Services).Returns(mockRepo.Object);

            var validator = new NullValidator <RemoveEndpoint>();

            var sut = new RemoveEndpointHandler(mockDbContext.Object, validator);
            await Assert.ThrowsAsync <ArgumentNullException>(() => sut.Handle(command));
        }
Exemple #7
0
        public async Task should_remove_endpoint()
        {
            var command = new RemoveEndpoint(Guid.NewGuid(), Guid.NewGuid());

            var service = new Mongo.Infrastructure.Entities.Service()
            {
                Id        = command.ServiceId,
                Active    = false,
                Endpoints = new[]
                {
                    new Mongo.Infrastructure.Entities.ServiceEndpoint()
                    {
                        Id     = command.EndpointId,
                        Active = false,
                    }
                }
            };

            var mockRepo = RepositoryUtils.MockRepository(service);

            var mockDbContext = new Mock <IDbContext>();

            mockDbContext.Setup(db => db.Services).Returns(mockRepo.Object);

            var validator = new NullValidator <RemoveEndpoint>();

            var sut = new RemoveEndpointHandler(mockDbContext.Object, validator);
            await sut.Handle(command);

            mockRepo.Verify(m => m.UpsertOneAsync(It.IsAny <Expression <Func <Mongo.Infrastructure.Entities.Service, bool> > >(),
                                                  It.Is <Mongo.Infrastructure.Entities.Service>(r =>
                                                                                                r.Id == command.ServiceId &&
                                                                                                r.Active == false &&
                                                                                                null != r.Endpoints && !r.Endpoints.Any(e => e.Id == command.EndpointId))
                                                  ), Times.Once());
        }