示例#1
0
        public async Task ShouldReturnClusterIdWhenInitClusterCalled()
        {
            //Given
            const string clusterId = "1234";

            _swarmClient.InitCluster(Arg.Any <SwarmInitParameters>()).Returns(Task.FromResult(clusterId));
            var swarmService      = new SwarmApi.Services.SwarmService(_swarmClient, _loggerFactory);
            var serviceController = new SwarmController(swarmService);

            //When
            var response = await serviceController.InitCluster(new SwarmApi.Dtos.ClusterInitParameters {
                AdvertiseAddress = "192.168.0.101",
                ListenAddress    = "192.168.0.101"
            });

            var result  = response as JsonResult;
            var content = result.Value;

            //Then
            Assert.NotNull(result);
            string id = content.GetType().GetProperty("Id").GetValue(content, null).ToString();

            Assert.Equal(200, result.StatusCode);
            Assert.Equal(clusterId, id);
        }
示例#2
0
        public async Task ShouldReturnBadRequestWhenDeleteMethodCalledWithEmptyId()
        {
            //Given
            var swarmService      = new SwarmApi.Services.SwarmService(_swarmClient, _loggerFactory);
            var serviceController = new SwarmController(swarmService);

            //When
            var response = await serviceController.DeleteService(null);

            var result = response as ContentResult;

            //Then
            Assert.NotNull(result);
            Assert.Equal(400, result.StatusCode);
        }
示例#3
0
        public async Task ShouldReturnOkWhenLeaveClusterCalledWithoutErrors()
        {
            //Given
            var swarmService      = new SwarmApi.Services.SwarmService(_swarmClient, _loggerFactory);
            var serviceController = new SwarmController(swarmService);

            //When
            var response = await serviceController.LeaveCluster();

            var result = response as ContentResult;

            //Then
            Assert.NotNull(result);
            Assert.Equal(200, result.StatusCode);
        }
示例#4
0
        public async Task ShouldDeleteServiceBasedOnIDWhenDeleteCalled()
        {
            //Given
            const string id                = "1234";
            var          swarmService      = new SwarmApi.Services.SwarmService(_swarmClient, _loggerFactory);
            var          serviceController = new SwarmController(swarmService);

            //When
            var response = await serviceController.DeleteService(id);

            var result = response as ContentResult;

            //Then
            Assert.NotNull(result);
            Assert.Equal(204, result.StatusCode);
        }
示例#5
0
        public async Task ShouldReturnInternalServerErrorWhenInspectClusterAndErrorOccur()
        {
            //Given
            _swarmClient.When(x => x.GetSwarmInfo()).Do(_ => throw new ArgumentException(""));
            var swarmService      = new SwarmApi.Services.SwarmService(_swarmClient, _loggerFactory);
            var serviceController = new SwarmController(swarmService);

            //When
            var response = await serviceController.InspectCluster();

            var result = response as ContentResult;

            //Then
            Assert.NotNull(result);
            Assert.Equal(500, result.StatusCode);
        }
示例#6
0
        public async Task ShouldReturnSystemInfoWhenInspectCluster()
        {
            //Given
            _swarmClient.GetSwarmInfo().Returns(Task.FromResult(_any.Create <SwarmInspectResponse>()));
            var swarmService      = new SwarmApi.Services.SwarmService(_swarmClient, _loggerFactory);
            var serviceController = new SwarmController(swarmService);

            //When
            var response = await serviceController.InspectCluster();

            var result = response as JsonResult;

            //Then
            Assert.NotNull(result);
            Assert.Equal(200, result.StatusCode);
        }
示例#7
0
        public async Task ShouldReturnInternalServerErrorWhenLeaveClusterCalledWithError()
        {
            //Given
            _swarmClient.When(x => x.LeaveCluster(Arg.Any <bool>())).Do(_ => throw new ArgumentException(""));
            var swarmService      = new SwarmApi.Services.SwarmService(_swarmClient, _loggerFactory);
            var serviceController = new SwarmController(swarmService);

            //When
            var response = await serviceController.LeaveCluster();

            var result = response as ContentResult;

            //Then
            Assert.NotNull(result);
            Assert.Equal(500, result.StatusCode);
        }
示例#8
0
        public async Task ShouldReturnInternalServerErrorWhenGetServicesCalledAndErrorOccour()
        {
            //Given
            _swarmClient.When(x => {
                x.GetServices();
            }).Do(_ => { throw new Exception(); });
            var swarmService      = new SwarmApi.Services.SwarmService(_swarmClient, _loggerFactory);
            var serviceController = new SwarmController(swarmService);

            //When
            var response = await serviceController.GetService();

            var result = response as ContentResult;

            //Then
            Assert.NotNull(result);
            Assert.Equal(500, result.StatusCode);
        }
示例#9
0
        public async Task ShouldReturnBadRequestWhenIpIsNotValidAddress(string adverIp, string listenIp, string message)
        {
            //Given
            var swarmService      = new SwarmApi.Services.SwarmService(_swarmClient, _loggerFactory);
            var serviceController = new SwarmController(swarmService);

            //When
            var response = await serviceController.InitCluster(new SwarmApi.Dtos.ClusterInitParameters {
                AdvertiseAddress = adverIp,
                ListenAddress    = listenIp
            });

            var result = response as ContentResult;

            //Then
            Assert.NotNull(result);
            Assert.Equal(400, result.StatusCode);
            Assert.Equal(message, result.Content);
        }
示例#10
0
        public async Task ShouldReturnInternalServerErrorWhenInitClusterCalledWithError()
        {
            //Given
            _swarmClient.When(x => x.InitCluster(Arg.Any <SwarmInitParameters>())).Do(_ => throw new InvalidCastException());
            var swarmService      = new SwarmApi.Services.SwarmService(_swarmClient, _loggerFactory);
            var serviceController = new SwarmController(swarmService);

            //When
            var response = await serviceController.InitCluster(new SwarmApi.Dtos.ClusterInitParameters {
                AdvertiseAddress = "192.168.0.101",
                ListenAddress    = "192.168.0.101"
            });

            var result = response as ContentResult;

            //Then
            Assert.NotNull(result);
            Assert.Equal(500, result.StatusCode);
        }
示例#11
0
        public async Task ShouldReturnAllServicesInfoWhenGetServicesCalled()
        {
            //Given
            _swarmClient.GetServices().Returns(x => {
                return(Task.FromResult <IEnumerable <SwarmService> >(new [] { _any.Create <SwarmService>(), _any.Create <SwarmService>() }));
            });
            var swarmService      = new SwarmApi.Services.SwarmService(_swarmClient, _loggerFactory);
            var serviceController = new SwarmController(swarmService);

            //When
            var response = await serviceController.GetService();

            var jsonResult = response as JsonResult;
            var value      = jsonResult?.Value as IEnumerable <SwarmService>;

            //Then
            Assert.NotNull(jsonResult);
            Assert.NotNull(value);
            Assert.Equal(200, jsonResult.StatusCode);
            Assert.Equal(2, value.Count());
        }