public void Should_GetCoverletExePath_From_First_That_Returns_Non_Null(int providingExeProvider) { var coverageProject = new Mock <ICoverageProject>().Object; var coverletSettings = "coverlet settings"; List <ExecuteRequest> executeRequests = new List <ExecuteRequest> { new ExecuteRequest(), new ExecuteRequest(), new ExecuteRequest(), new ExecuteRequest() }; ExecuteRequest GetExecuteRequest(int order) { if (order != providingExeProvider) { return(null); } return(executeRequests[order]); }; var mockLocalExecutor = new Mock <ICoverletConsoleExecutor>(); var mockCustomPathExecutor = new Mock <ICoverletConsoleExecutor>(); var mockGlobalExecutor = new Mock <ICoverletConsoleExecutor>(); var mockFCCCoverletConsoleExecutor = new Mock <IFCCCoverletConsoleExecutor>(); var mockFCCExecutor = mockFCCCoverletConsoleExecutor.As <ICoverletConsoleExecutor>(); var mockExecutors = new List <Mock <ICoverletConsoleExecutor> > { mockLocalExecutor, mockCustomPathExecutor, mockGlobalExecutor, mockFCCExecutor }; var callOrder = new List <int>(); for (var i = 0; i < mockExecutors.Count; i++) { var order = i; var mockExeProvider = mockExecutors[i]; mockExeProvider.Setup(p => p.GetRequest(coverageProject, coverletSettings)).Returns(GetExecuteRequest(i)).Callback <ICoverageProject, string>((_, __) => { callOrder.Add(order); }); } var coverletConsoleUtil = new CoverletConsoleUtil(null, null, mockGlobalExecutor.Object, mockCustomPathExecutor.Object, mockLocalExecutor.Object, mockFCCCoverletConsoleExecutor.Object); var executeRequest = coverletConsoleUtil.GetExecuteRequest(coverageProject, coverletSettings); Assert.AreSame(GetExecuteRequest(providingExeProvider), executeRequest); Assert.AreEqual(providingExeProvider + 1, callOrder.Count); var previousCallOrder = -1; foreach (var call in callOrder) { Assert.AreEqual(call - previousCallOrder, 1); previousCallOrder = call; } }
public void SetUp() { mocker = new AutoMoqer(); coverletConsoleUtil = mocker.Create <CoverletConsoleUtil>(); }