Esempio n. 1
0
        public async Task Get_ClientId_ReturnsClient_IfFound()
        {
            var client = new ConfigurationClient
            {
                ClientId    = clientId,
                Name        = "Test Client",
                Description = "Description",
                Enviroment  = "Dev",
                Group       = groupId
            };

            client.Settings.Add("Password", new ConfigurationClientSetting {
                Key = "Password", Value = "1234"
            });

            configurationClientService.Setup(cs => cs.GetClientOrDefault(clientId))
            .ReturnsAsync(() => client);

            var context = TestHttpContextBuilder.CreateForPath($"/{clientId}")
                          .WithClaims(readClaim).TestContext;
            ConfigurationClientPayload observed = null;

            factory.Setup(f => f.BuildJsonResponse(context, It.IsAny <ConfigurationClientPayload>()))
            .Callback((HttpContext c, object arg2) => observed = (ConfigurationClientPayload)arg2)
            .Returns(() => Task.FromResult(1));

            await target.Handle(context, options);

            Assert.NotNull(observed);
            AssertClient(observed, client);
        }
Esempio n. 2
0
 private void AssertClient(ConfigurationClientPayload payload, ConfigurationClient client)
 {
     Assert.Equal(payload.ClientId, client.ClientId);
     Assert.Equal(payload.Name, client.Name);
     Assert.Equal(payload.Description, client.Description);
     Assert.Equal(payload.Enviroment, client.Enviroment);
     Assert.Equal(payload.Group, client.Group);
     Assert.Equal(payload.Settings.Select(s => s.Key), client.Settings.Values.Select(s => s.Key));
     Assert.Equal(payload.Settings.Select(s => s.Value), client.Settings.Values.Select(s => s.Value));
 }
Esempio n. 3
0
        public async Task Post_CallsCommandBus()
        {
            var client = new ConfigurationClientPayload
            {
                ClientId = clientId,
            };

            var context = TestHttpContextBuilder.CreateForPath("/")
                          .WithClaims(writeClaim)
                          .WithPost()
                          .WithJsonBody(client)
                          .TestContext;

            await target.Handle(context, options);

            commandBus.Verify(f => f.SubmitAsync(It.Is <CreateUpdateClientCommand>(c => c.Client.ClientId == client.ClientId)));
        }
Esempio n. 4
0
        public async Task Post_403_IfDoesNotHaveWriteClaim()
        {
            var client = new ConfigurationClientPayload
            {
                ClientId = clientId,
            };

            var commandResult = CommandResult.Success();
            var context       = TestHttpContextBuilder.CreateForPath("/")
                                .WithClaims(readClaim)
                                .WithPost()
                                .WithJsonBody(client)
                                .TestContext;


            await target.Handle(context, options);

            commandBus.Verify(c => c.SubmitAsync(It.IsAny <CreateUpdateClientCommand>()), Times.Never);
            factory.Verify(f => f.BuildStatusResponse(context, 403));
        }
Esempio n. 5
0
        public async Task Post_BuildsResponseFromCommandResult()
        {
            var client = new ConfigurationClientPayload
            {
                ClientId = clientId,
            };

            var commandResult = CommandResult.Success();
            var context       = TestHttpContextBuilder.CreateForPath("/")
                                .WithClaims(writeClaim)
                                .WithPost()
                                .WithJsonBody(client)
                                .TestContext;

            commandBus.Setup(c => c.SubmitAsync(It.IsAny <CreateUpdateClientCommand>()))
            .ReturnsAsync(() => commandResult);

            await target.Handle(context, options);

            factory.Verify(f => f.BuildResponseFromCommandResult(context, commandResult));
        }
Esempio n. 6
0
        public async Task Get_ClientId_ReturnsClient_IfFoundAndHasAdminClaimButNoConfiguratorClaim()
        {
            var client = new ConfigurationClient
            {
                ClientId          = clientId,
                ConfiguratorClaim = "RequiredClaim",
            };

            configurationClientService.Setup(cs => cs.GetClientOrDefault(clientId))
            .ReturnsAsync(() => client);

            var context = TestHttpContextBuilder.CreateForPath($"/{clientId}")
                          .WithClaims(writeClaim).TestContext;
            ConfigurationClientPayload observed = null;

            factory.Setup(f => f.BuildJsonResponse(context, It.IsAny <ConfigurationClientPayload>()))
            .Callback((HttpContext c, object arg2) => observed = (ConfigurationClientPayload)arg2)
            .Returns(() => Task.FromResult(1));

            await target.Handle(context, options);

            Assert.NotNull(observed);
        }