public void ReplaceInRange_WhenArgumentsInvalid_ThrowsException(int lowerBound, int upperBound) { // Arrange var mockTermsReplaced = new[] { "Test" }; var termReplacer = Substitute.For <ITermReplacer>(); var summaryBuilder = Substitute.For <ISummaryBuilder>(); termReplacer.ReplaceSequence(new[] { 1, 2 }).ReturnsForAnyArgs(mockTermsReplaced); var termReplacementController = new TermReplacementController(termReplacer, summaryBuilder); // Act Assert.Throws <ArgumentException>(() => termReplacementController.ReplaceInRange(lowerBound, upperBound)); }
public void ReplaceInRange_WhenValidInput_CalculatesRangeAndPassesToTermReplacer(int lowerBound, int upperBound) { // Arrange var termReplacer = Substitute.For <ITermReplacer>(); var summaryBuilder = Substitute.For <ISummaryBuilder>(); var termReplacementController = new TermReplacementController(termReplacer, summaryBuilder); // Act termReplacementController.ReplaceInRange(lowerBound, upperBound); // Assert termReplacer.Received(1).ReplaceSequence(Arg.Any <int[]>()); }
public void ReplaceInRange_WhenValidInput_PassesReplacedTermsToSummaryBuilder(int lowerBound, int upperBound) { // Arrange var mockTermsReplaced = new[] { "Test" }; var termReplacer = Substitute.For <ITermReplacer>(); var summaryBuilder = Substitute.For <ISummaryBuilder>(); termReplacer.ReplaceSequence(new[] { 1, 2 }).ReturnsForAnyArgs(mockTermsReplaced); var termReplacementController = new TermReplacementController(termReplacer, summaryBuilder); // Act termReplacementController.ReplaceInRange(lowerBound, upperBound); // Assert summaryBuilder.Received(1).BuildSummary(mockTermsReplaced, Arg.Any <int[]>()); }
public void ReplaceInRange_WhenValidInput_ReturnsCalculatedResponse(int lowerBound, int upperBound) { // Arrange var mockTermsReplaced = new[] { "test" }; var mockSummary = new Dictionary <string, int>(new[] { new KeyValuePair <string, int>("test", 1) }); var mockOriginalNumbers = new[] { 1 }; var expectedResponse = ReplaceInRangeResponse.Build(mockTermsReplaced, mockOriginalNumbers, mockSummary); var termReplacer = Substitute.For <ITermReplacer>(); var summaryBuilder = Substitute.For <ISummaryBuilder>(); termReplacer.ReplaceSequence(Arg.Any <int[]>()).ReturnsForAnyArgs(mockTermsReplaced); summaryBuilder.BuildSummary(mockTermsReplaced, Arg.Any <int[]>()).ReturnsForAnyArgs(mockSummary); var termReplacementController = new TermReplacementController(termReplacer, summaryBuilder); // Act var response = termReplacementController.ReplaceInRange(lowerBound, upperBound); // Assert Assert.True(expectedResponse.result == response.result && expectedResponse.summary == response.summary, "Response from ReplaceInRange action method was different than expected"); }