public void RefreshTimesheetInstant_OnSuccess_ReturnsTrue() { // Arrange ShimReportData.ConstructorGuid = (_, guid) => { }; var message = string.Empty; var expectedLogs = new List <string> { "Begin refreshing time sheet data for web", "Finished refreshing time sheet data for web" }; var refreshTimeSheetWasCalled = false; var logMessages = new List <string>(); ShimReportData.AllInstances.LogStatusStringStringStringStringInt32Int32String = (_, listId, listName, shortMsg, longMsg, level, type, jobGuid) => { logMessages.Add(shortMsg); return(true); }; ShimReportData.AllInstances.RefreshTimeSheetGuidStringGuid = (_, site, title, job) => refreshTimeSheetWasCalled = true; ShimReportBiz.AllInstances.WebTitleGet = _ => DummyString; // Act var result = reportBiz.RefreshTimesheetInstant(out message, DummyGuid); // Assert result.ShouldSatisfyAllConditions( () => result.ShouldBeFalse(), () => message.ShouldBeNullOrEmpty(), () => refreshTimeSheetWasCalled.ShouldBeTrue(), () => expectedLogs.ForEach(p => logMessages.Any(log => log.Contains(p)))); }