public async Task TestProcessRemoveTimeLimit() { bool calledActual = false; ClusterConfig config = new ClusterConfig() { MaxClusterUptime = TimeSpan.FromHours(2) }; MockReliableStateManager stateManager = new MockReliableStateManager(); MockClusterOperator clusterOperator = new MockClusterOperator() { DeleteClusterAsyncFunc = name => { calledActual = true; return(Task.FromResult(true)); } }; ClusterService target = new ClusterService(clusterOperator, stateManager) { Config = config }; Cluster cluster = new Cluster() { Status = ClusterStatus.Ready, CreatedOn = DateTimeOffset.UtcNow - config.MaxClusterUptime }; await target.ProcessClusterStatusAsync(cluster); Assert.IsTrue(calledActual); Assert.AreEqual(ClusterStatus.Deleting, cluster.Status); }
public async Task TestProcessRemove() { bool calledActual = false; string nameActual = null; MockReliableStateManager stateManager = new MockReliableStateManager(); MockClusterOperator clusterOperator = new MockClusterOperator() { DeleteClusterAsyncFunc = name => { nameActual = name; calledActual = true; return(Task.FromResult(true)); } }; ClusterService target = new ClusterService(clusterOperator, stateManager); Cluster cluster = new Cluster() { Status = ClusterStatus.Remove }; await target.ProcessClusterStatusAsync(cluster); Assert.IsTrue(calledActual); Assert.AreEqual(ClusterStatus.Deleting, cluster.Status); }
public async Task TestProcessNewCluster() { bool calledActual = false; string nameTemplate = "Test:{0}"; string nameActual = null; MockReliableStateManager stateManager = new MockReliableStateManager(); MockClusterOperator clusterOperator = new MockClusterOperator() { CreateClusterAsyncFunc = name => { nameActual = name; calledActual = true; return(Task.FromResult(String.Format(nameTemplate, name))); } }; ClusterService target = new ClusterService(clusterOperator, stateManager); Cluster cluster = new Cluster() { Status = ClusterStatus.New }; await target.ProcessClusterStatusAsync(cluster); Assert.IsTrue(calledActual); Assert.AreEqual(ClusterStatus.Creating, cluster.Status); Assert.AreEqual(String.Format(nameTemplate, nameActual), cluster.Address); }
public async Task TestProcessDeletingSuccessful() { MockReliableStateManager stateManager = new MockReliableStateManager(); MockClusterOperator clusterOperator = new MockClusterOperator() { GetClusterStatusAsyncFunc = domain => Task.FromResult(ClusterOperationStatus.ClusterNotFound) }; ClusterService target = new ClusterService(clusterOperator, stateManager); Cluster cluster = new Cluster() { Status = ClusterStatus.Deleting }; await target.ProcessClusterStatusAsync(cluster); Assert.AreEqual(ClusterStatus.Deleted, cluster.Status); }
public async Task TestProcessCreatingClusterFailed() { MockReliableStateManager stateManager = new MockReliableStateManager(); MockClusterOperator clusterOperator = new MockClusterOperator() { GetClusterStatusAsyncFunc = name => Task.FromResult(ClusterOperationStatus.CreateFailed) }; ClusterService target = new ClusterService(clusterOperator, stateManager); Cluster cluster = new Cluster() { Status = ClusterStatus.Creating }; await target.ProcessClusterStatusAsync(cluster); Assert.AreEqual(ClusterStatus.New, cluster.Status); Assert.AreEqual(0, cluster.Ports.Count()); Assert.AreEqual(0, cluster.Users.Count()); }
public async Task TestProcessCreatingClusterSuccess() { MockReliableStateManager stateManager = new MockReliableStateManager(); MockClusterOperator clusterOperator = new MockClusterOperator() { GetClusterStatusAsyncFunc = name => Task.FromResult(ClusterOperationStatus.Ready) }; ClusterService target = new ClusterService(clusterOperator, stateManager); Cluster cluster = new Cluster() { Status = ClusterStatus.Creating }; await target.ProcessClusterStatusAsync(cluster); Assert.AreEqual(ClusterStatus.Ready, cluster.Status); Assert.IsTrue(cluster.CreatedOn.ToUniversalTime() <= DateTimeOffset.UtcNow); cluster.Ports.SequenceEqual(await clusterOperator.GetClusterPortsAsync("")); }