From 160d07e576d2bbd5e703fbb4a54c31da77486fc9 Mon Sep 17 00:00:00 2001 From: JoannaaKL Date: Wed, 31 Aug 2022 13:55:18 +0000 Subject: [PATCH] Adding another test to ContainerOperationProvider --- .../L0/Worker/ContainerOperationProviderL0.cs | 37 +++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/src/Test/L0/Worker/ContainerOperationProviderL0.cs b/src/Test/L0/Worker/ContainerOperationProviderL0.cs index 61379aebb..98a5db1ae 100644 --- a/src/Test/L0/Worker/ContainerOperationProviderL0.cs +++ b/src/Test/L0/Worker/ContainerOperationProviderL0.cs @@ -23,24 +23,30 @@ namespace GitHub.Runner.Common.Tests.Worker private Mock _ec; private Mock _dockerManager; private Mock _containerHookManager; - private ContainerOperationProvider containerOperationProvider; + private Mock serverQueue; + + private Mock pagingLogger; + private List healthyDockerStatus = new List { "healthy" }; private List dockerLogs = new List { "log1", "log2", "log3" }; + private ContainerInfo containerInfo; + [Fact] [Trait("Level", "L0")] [Trait("Category", "Worker")] public async void Healthchecktest_healthyDocker() { + //Arrange Setup(); - - var containerInfo = new ContainerInfo() { ContainerImage = "ubuntu:16.04" }; - _dockerManager.Setup(x => x.DockerInspect(_ec.Object, It.IsAny(), It.IsAny())).Returns(Task.FromResult(healthyDockerStatus)); + + //Act var result = await containerOperationProvider.Healthcheck(_ec.Object, containerInfo); + //Assert _dockerManager.Verify(dm => dm.DockerInspectLogs(It.IsAny(), It.IsAny()), Times.Never()); } @@ -50,12 +56,12 @@ namespace GitHub.Runner.Common.Tests.Worker [Trait("Category", "Worker")] public async void Healthchecktest_dockerError() { + //Arrange Setup(); - - var containerInfo = new ContainerInfo() { ContainerImage = "ubuntu:16.04", ContainerId = "1234" }; - _dockerManager.Setup(x => x.DockerInspectLogs(_ec.Object, containerInfo.ContainerId)).Returns(Task.FromResult(dockerLogs)); + //Act + //Asert await Assert.ThrowsAsync(() => containerOperationProvider.ContainerHealthcheckLogs(_ec.Object, containerInfo, "error")); } @@ -65,33 +71,42 @@ namespace GitHub.Runner.Common.Tests.Worker [Trait("Category", "Worker")] public async void Healthchecktest_dockerError_inspectLogs() { + //Arrange Setup(); - - var containerInfo = new ContainerInfo() { ContainerImage = "ubuntu:16.04", ContainerId = "1234" }; - _dockerManager.Setup(x => x.DockerInspectLogs(_ec.Object, containerInfo.ContainerId)).Returns(Task.FromResult(dockerLogs)); try { + //Act await containerOperationProvider.ContainerHealthcheckLogs(_ec.Object, containerInfo, "error"); } catch (InvalidOperationException) { - //TODO validate the log message written to the _ec + + //Assert + _ec.Verify(pL => pL.Write(It.IsAny(), It.IsAny()), Times.Exactly(3)); + } } private void Setup([CallerMemberName] string testName = "") { + containerInfo = new ContainerInfo() { ContainerImage = "ubuntu:16.04" }; _hc = new TestHostContext(this, "name"); _ec = new Mock(); + serverQueue = new Mock(); + pagingLogger = new Mock(); _dockerManager = new Mock(); _containerHookManager = new Mock(); containerOperationProvider = new ContainerOperationProvider(); + _hc.SetSingleton(_dockerManager.Object); + _hc.SetSingleton(serverQueue.Object); + _hc.SetSingleton(pagingLogger.Object); + _hc.SetSingleton(_dockerManager.Object); _hc.SetSingleton(_containerHookManager.Object);