Exemplo n.º 1
0
        public async Task AuthorizeAsync_ReturnsList_Async()
        {
            var kubernetes   = new Mock <KubernetesClient>(MockBehavior.Strict);
            var deviceClient = new Mock <NamespacedKubernetesClient <MobileDevice> >(MockBehavior.Strict);

            deviceClient
            .Setup(d => d.ListAsync(null, null, null, null, default))
            .ReturnsAsync(
                new ItemList <MobileDevice>()
            {
                Items = new List <MobileDevice>()
                {
                    new MobileDevice()
                    {
                        Metadata = new V1ObjectMeta()
                        {
                            Name = "device",
                        },
                        Status = new MobileDeviceStatus()
                        {
                            VncHost     = "1.2.3.4",
                            VncPassword = "******",
                        },
                    },
                },
            });

            kubernetes.Setup(c => c.GetClient <MobileDevice>()).Returns(deviceClient.Object);

            var controller = new GuacamoleController(NullLogger <GuacamoleController> .Instance, kubernetes.Object);
            var result     = await controller.AuthorizeAsync(new AuthorizationRequest(), default).ConfigureAwait(false);

            var objectResult = Assert.IsType <OkObjectResult>(result);

            var authorizationResult = Assert.IsType <AuthorizationResult>(objectResult.Value);

            Assert.True(authorizationResult.Authorized);
            var configuration = Assert.Single(authorizationResult.Configurations);

            Assert.Equal("device", configuration.Key);

            Assert.Equal("vnc", configuration.Value.Protocol);
            Assert.Collection(
                configuration.Value.Parameters,
                c =>
            {
                Assert.Equal("hostname", c.Key);
                Assert.Equal("1.2.3.4", c.Value);
            },
                c =>
            {
                Assert.Equal("port", c.Key);
                Assert.Equal(5900, c.Value);
            },
                c =>
            {
                Assert.Equal("password", c.Key);
                Assert.Equal(string.Empty, c.Value);
            });
        }
Exemplo n.º 2
0
        public async Task AuthorizeAsync_SkipsDeviceWithoutVnc_Async(MobileDevice device)
        {
            var kubernetes   = new Mock <KubernetesClient>(MockBehavior.Strict);
            var deviceClient = new Mock <NamespacedKubernetesClient <MobileDevice> >(MockBehavior.Strict);

            deviceClient
            .Setup(d => d.ListAsync(null, null, null, null, default))
            .ReturnsAsync(
                new ItemList <MobileDevice>()
            {
                Items = new List <MobileDevice>()
                {
                    device,
                },
            });

            kubernetes.Setup(c => c.GetClient <MobileDevice>()).Returns(deviceClient.Object);

            var controller = new GuacamoleController(NullLogger <GuacamoleController> .Instance, kubernetes.Object);
            var result     = await controller.AuthorizeAsync(new AuthorizationRequest(), default).ConfigureAwait(false);

            var objectResult = Assert.IsType <OkObjectResult>(result);

            var authorizationResult = Assert.IsType <AuthorizationResult>(objectResult.Value);

            Assert.True(authorizationResult.Authorized);
            Assert.Empty(authorizationResult.Configurations);
        }