public void MakeCollectBlockOperation_BlockShouldBeManaged_ResultIsIgnored(CollectBlockTestCase testCase) { var testContext = new TestContext() { ManageOtherGrids = testCase.ManageOtherGrids, AutoManageThisGrid = testCase.AutoManageThisGrid, AutoManageOtherGrids = testCase.AutoManageOtherGrids, IsBlockSameGrid = testCase.IsBlockSameGrid, IsBlockIgnored = testCase.IsBlockIgnored, IsBlockManaged = testCase.IsBlockManaged }; var mockBackgroundWorker = new FakeBackgroundWorker(); var result = testContext.Uut.MakeCollectBlockOperation(testContext.MockBlock.Object); result .ShouldRunToCompletion(mockBackgroundWorker); testContext.MockManagedBlockConfigManager .ShouldHaveReceived(x => x.MakeParseOperation(testContext.MockBlock.Object), 1); mockBackgroundWorker.MockSubOperationScheduler .ShouldHaveReceived(x => x(testContext.MockParseOperation.Object), 1); result.Result.IsIgnored.ShouldBeTrue(); }
public void MakeCollectBlockOperation_OperationIsDisposed_OperationIsRecycled(CollectBlockTestCase testCase) { var testContext = new TestContext() { ManageOtherGrids = testCase.ManageOtherGrids, AutoManageThisGrid = testCase.AutoManageThisGrid, AutoManageOtherGrids = testCase.AutoManageOtherGrids, IsBlockSameGrid = testCase.IsBlockSameGrid, IsBlockIgnored = testCase.IsBlockIgnored, IsBlockManaged = testCase.IsBlockManaged }; var mockBackgroundWorker = new FakeBackgroundWorker(); var result = testContext.Uut.MakeCollectBlockOperation(testContext.MockBlock.Object); result.ShouldRunToCompletion(mockBackgroundWorker); var mockBlockInvocations = testContext.MockBlock .Invocations.ToArray(); var mockManagedBlockConfigManagerInvocations = testContext.MockManagedBlockConfigManager .Invocations.ToArray(); var mockSubOperationSchedulerInvocations = mockBackgroundWorker.MockSubOperationScheduler .Invocations.ToArray(); result.ShouldBeAssignableTo <IDisposable>(); (result as IDisposable).Dispose(); var secondMockBlock = new Mock <IMyTerminalBlock>(); secondMockBlock .Setup(x => x.CubeGrid) .Returns(() => testContext.MockBlock.Object.CubeGrid); testContext.MockManagedBlockConfigManager .Invocations.Clear(); mockBackgroundWorker.MockSubOperationScheduler .Invocations.Clear(); testContext.Uut.MakeCollectBlockOperation(secondMockBlock.Object) .ShouldBeSameAs(result); result.ShouldRunToCompletion(mockBackgroundWorker); secondMockBlock.Invocations.Count.ShouldBe(mockBlockInvocations.Length); foreach (var i in Enumerable.Range(0, mockBlockInvocations.Length)) { secondMockBlock.Invocations[i].ShouldBe(mockBlockInvocations[i]); } testContext.MockManagedBlockConfigManager.Invocations.Count.ShouldBe(mockManagedBlockConfigManagerInvocations.Length); foreach (var i in Enumerable.Range(0, mockManagedBlockConfigManagerInvocations.Length)) { testContext.MockManagedBlockConfigManager.Invocations[i].ShouldBe(mockManagedBlockConfigManagerInvocations[i]); } mockBackgroundWorker.MockSubOperationScheduler.Invocations.Count.ShouldBe(mockSubOperationSchedulerInvocations.Length); foreach (var i in Enumerable.Range(0, mockSubOperationSchedulerInvocations.Length)) { mockBackgroundWorker.MockSubOperationScheduler.Invocations[i].ShouldBe(mockSubOperationSchedulerInvocations[i]); } }