public async Task SuccessfulSetTests(IWorkerInfo worker, IWorkerInfo current) { var activityId = Guid.NewGuid().ToString(); var tableLock = new MockWorkerTableLock(); // Test using (var scaleManager = new MockScaleManager(MockBehavior.Strict)) { // Setup scaleManager.MockWorkerTable.Setup(t => t.AcquireLock()) .Returns(() => tableLock.AcquireLock()); scaleManager.MockWorkerTable.Setup(t => t.GetManager()) .Returns(Task.FromResult(current)); scaleManager.MockWorkerTable.Setup(t => t.SetManager(worker)) .Returns(Task.CompletedTask); scaleManager.MockScaleTracer.Setup(t => t.TraceInformation(activityId, worker, It.Is <string>(c => c.Contains("Acquire table lock")))); scaleManager.MockScaleTracer.Setup(t => t.TraceInformation(activityId, worker, It.Is <string>(c => c.Contains("Release table lock")))); scaleManager.MockScaleTracer.Setup(t => t.TraceInformation(activityId, worker, It.Is <string>(c => c.Contains("is set to be a manager")))); // test var newManager = await scaleManager.MockSetManager(activityId, worker, current); // assert scaleManager.VerifyAll(); Assert.True(ScaleUtils.Equals(newManager, worker)); Assert.False(ScaleUtils.Equals(newManager, current)); } }
public void SortByRemovingOrderTests() { var expected = new[] { new MockWorkerInfo { StampName = "slave-stamp", WorkerName = "1", LoadFactor = 10 }, new MockWorkerInfo { StampName = "slave-stamp", WorkerName = "2", LoadFactor = 50 }, new MockWorkerInfo { StampName = "slave-stamp", WorkerName = "3", LoadFactor = 90 }, new MockWorkerInfo { StampName = "home-stamp", WorkerName = "4", LoadFactor = 10 }, new MockWorkerInfo { StampName = "home-stamp", WorkerName = "5", LoadFactor = 50 }, new MockWorkerInfo { StampName = "home-stamp", WorkerName = "6", LoadFactor = 90 }, }; // Test var random = new Random(); var actual = expected.OrderBy(_ => random.Next()) .SortByRemovingOrder().ToArray(); // Assert for (int i = 0; i < 0; ++i) { Assert.True(ScaleUtils.Equals(expected[i], actual[i])); } }
public async Task BasicTests(IWorkerInfo worker, IWorkerInfo current, IEnumerable <IWorkerInfo> workers, IWorkerInfo expected) { var activityId = Guid.NewGuid().ToString(); var mockManager = new Mock <MockScaleManager>(MockBehavior.Default) { CallBase = true }; // Test using (var scaleManager = mockManager.Object) { // Setup IWorkerInfo newManager = null; if (expected != current) { mockManager.Setup(m => m.MockSetManager(activityId, worker, current)) .Callback((string acticityId1, IWorkerInfo info1, IWorkerInfo current1) => newManager = info1) .Returns(() => Task.FromResult(newManager)); } scaleManager.MockWorkerTable.Setup(t => t.GetManager()) .Returns(Task.FromResult <IWorkerInfo>(current)); if (workers != null) { scaleManager.MockWorkerTable.Setup(t => t.List()) .Returns(Task.FromResult(workers)); } // test var actual = await scaleManager.MockEnsureManager(activityId, worker); // assert mockManager.VerifyAll(); scaleManager.VerifyAll(); Assert.True(ScaleUtils.Equals(expected, actual)); } }