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); }); }
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); }