private Response CreateServiceReponse(TestServiceResponse serviceReponse) { switch (serviceReponse) { case TestServiceResponse.One: return new Response() { Data = 1, StatusCode = HttpStatusCode.OK }; case TestServiceResponse.Two: return new Response() { Data = 2, StatusCode = HttpStatusCode.OK }; case TestServiceResponse.TimeOut: return new Response() { Data = -1, StatusCode = HttpStatusCode.GatewayTimeout }; case TestServiceResponse.Error: return new Response() { Data = -1, StatusCode = HttpStatusCode.BadRequest }; default: throw new Exception(); } }
public void IncomingCallTest(string callerId, TestServiceResponse serviceReponse, string expectedGroup) { var service = A.Fake<IMockWebService>(); var mockResponse = CreateServiceReponse(serviceReponse); service.CallsTo(s => s.ProcessCall(callerId)) .Returns(mockResponse); var log = A.Fake<ILogger>(); var _sut = new CallPlanner(service,log); var assignedGroup = _sut.AssignToGroup(callerId).Result; assignedGroup.Should() .BeEquivalentTo(expectedGroup); A.CallTo(() => log.Log("Receive call from \"" + callerId + "\"")) .MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => log.Log("Invoke Web Service with \"" + callerId + "\", response is \"" + TextualResponse(mockResponse) + "\"")) .MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => log.Log("Deliver to group \"" + expectedGroup + "\"")) .MustHaveHappened(Repeated.Exactly.Once); }