public async Task ModulesTest(string serverApiVersion, string clientApiVersion) { // Arrange IModuleManager client = new ModuleManagementHttpClient(this.serverUrl, serverApiVersion, clientApiVersion); var moduleSpec = new ModuleSpec("Module1", "Docker", JObject.Parse("{ \"image\": \"testimage\" }"), new ObservableCollection <EnvVar> { new EnvVar("E1", "P1") }); // Act await client.CreateModuleAsync(moduleSpec); ModuleRuntimeInfo moduleDetails = (await client.GetModules <TestConfig>(CancellationToken.None)).FirstOrDefault(); // Assert Assert.NotNull(moduleDetails); Assert.Equal("Module1", moduleDetails.Name); Assert.Equal("Docker", moduleDetails.Type); Assert.Equal(ModuleStatus.Unknown, moduleDetails.ModuleStatus); // Act await client.StartModuleAsync(moduleSpec.Name); moduleDetails = (await client.GetModules <TestConfig>(CancellationToken.None)).FirstOrDefault(); // Assert Assert.NotNull(moduleDetails); Assert.Equal(ModuleStatus.Running, moduleDetails.ModuleStatus); // Act await client.StopModuleAsync(moduleSpec.Name); moduleDetails = (await client.GetModules <TestConfig>(CancellationToken.None)).FirstOrDefault(); // Assert Assert.NotNull(moduleDetails); Assert.Equal(ModuleStatus.Stopped, moduleDetails.ModuleStatus); // Act await client.RestartModuleAsync(moduleSpec.Name); moduleDetails = (await client.GetModules <TestConfig>(CancellationToken.None)).FirstOrDefault(); // Assert Assert.NotNull(moduleDetails); Assert.Equal(ModuleStatus.Running, moduleDetails.ModuleStatus); // Act moduleSpec.EnvironmentVariables.ToList().Add(new EnvVar("test", "added")); await client.UpdateModuleAsync(moduleSpec); moduleDetails = (await client.GetModules <TestConfig>(CancellationToken.None)).FirstOrDefault(); // Assert Assert.NotNull(moduleDetails); Assert.Equal(ModuleStatus.Unknown, moduleDetails.ModuleStatus); // Act moduleSpec.EnvironmentVariables.ToList().Add(new EnvVar("test", "added")); await client.UpdateAndStartModuleAsync(moduleSpec); moduleDetails = (await client.GetModules <TestConfig>(CancellationToken.None)).FirstOrDefault(); // Assert Assert.NotNull(moduleDetails); Assert.Equal(ModuleStatus.Running, moduleDetails.ModuleStatus); // Act - Stopping a stopped module should not throw await client.StopModuleAsync(moduleSpec.Name); moduleDetails = (await client.GetModules <TestConfig>(CancellationToken.None)).FirstOrDefault(); // Assert Assert.NotNull(moduleDetails); Assert.Equal(ModuleStatus.Stopped, moduleDetails.ModuleStatus); // Act await client.DeleteModuleAsync(moduleSpec.Name); moduleDetails = (await client.GetModules <TestConfig>(CancellationToken.None)).FirstOrDefault(); // Assert Assert.Null(moduleDetails); }
public async Task ModulesTest() { // Arrange IModuleManager client = new ModuleManagementHttpClient(this.serverUrl); var moduleSpec = new ModuleSpec { Name = "Module1", Type = "Docker", Config = new Config { Env = new System.Collections.ObjectModel.ObservableCollection <EnvVar> { new EnvVar { Key = "E1", Value = "P1" } }, Settings = "{ \"image\": \"testimage\" }" } }; // Act await client.CreateModuleAsync(moduleSpec); ModuleDetails moduleDetails = (await client.GetModules(CancellationToken.None)).FirstOrDefault(); // Assert Assert.NotNull(moduleDetails); Assert.Equal("Module1", moduleDetails.Name); Assert.NotNull(moduleDetails.Id); Assert.Equal("Docker", moduleDetails.Type); Assert.NotNull(moduleDetails.Status); Assert.Equal("Created", moduleDetails.Status.RuntimeStatus.Status); // Act await client.StartModuleAsync(moduleSpec.Name); moduleDetails = (await client.GetModules(CancellationToken.None)).FirstOrDefault(); // Assert Assert.NotNull(moduleDetails); Assert.Equal("Running", moduleDetails.Status.RuntimeStatus.Status); // Act await client.StopModuleAsync(moduleSpec.Name); moduleDetails = (await client.GetModules(CancellationToken.None)).FirstOrDefault(); // Assert Assert.NotNull(moduleDetails); Assert.Equal("Stopped", moduleDetails.Status.RuntimeStatus.Status); // Act - Stopping a stopped module should not throw await client.StopModuleAsync(moduleSpec.Name); moduleDetails = (await client.GetModules(CancellationToken.None)).FirstOrDefault(); // Assert Assert.NotNull(moduleDetails); Assert.Equal("Stopped", moduleDetails.Status.RuntimeStatus.Status); // Act await client.DeleteModuleAsync(moduleSpec.Name); moduleDetails = (await client.GetModules(CancellationToken.None)).FirstOrDefault(); // Assert Assert.Null(moduleDetails); }