public async Task CrushTest() { using (var context = new TrafficLightContext(ContextOptions)) { SequencesController seqController = new SequencesController(context, new SequencesService()); ObservationsController obsController = new ObservationsController(context, new SequencesService(), new ObservationsService(context)); string sequenceJson = await seqController.Create(); var addSequenceResponseType = new { status = "", response = new { sequence = "" } }; var addSequenceResponse = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(sequenceJson, addSequenceResponseType); string getSequenceJson = seqController.Get(addSequenceResponse.response.sequence); var getSequenceResponseType = new { status = "", response = new { clock = new string[2], color = "" } }; var getSequenceResponse = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(getSequenceJson, getSequenceResponseType); string obsJson = await obsController.Create(new ObservationRequest() { Sequence = addSequenceResponse.response.sequence, Observation = new UserObservation() { Color = getSequenceResponse.response.color, Numbers = getSequenceResponse.response.clock } }); Assert.Equal("green", getSequenceResponse.response.color); var addObsResponseType = new { status = "", response = new { missing = new string[2], numbers = new int[2] } }; var addObsResponse = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(obsJson, addObsResponseType); } }
public void When_Index_Returns_As_A_View() { // Arrange SequencesController controller = new SequencesController(null); // Act ViewResult result = controller.Index() as ViewResult; // Assert Assert.IsNotNull(result); }
public void CreateTest() { using (var context = new TrafficLightContext(ContextOptions)) { var controller = new SequencesController(context, new SequencesService()); string responseJson = controller.Create().Result; var responseType = new { status = "", response = new { sequence = "" } }; var response = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(responseJson, responseType); Assert.False(String.IsNullOrEmpty(response.response.sequence)); Assert.Equal("ok", response.status); } }
public async Task Then_NoContent_returned() { var mediator = Substitute.For <IMediator>(); mediator.Send(Arg.Any <GetSequencesRequest>(), Arg.Any <CancellationToken>()) .Returns(new HandlerResponse <List <Sequence> > { Success = true, Value = new List <Sequence>() }); var controller = new SequencesController(mediator); var result = await controller.GetSequences(Guid.NewGuid()); result.Result.Should().BeOfType <NoContentResult>(); }
public void Index_Returns_A_Simple_View_Result() { // Arrange var controller = new SequencesController(null); // Act var result = controller.Index(new SequenceGeneratorModel()); // Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(ViewResult)); var viewResult = result as ViewResult; Assert.IsTrue(viewResult.ViewData.ModelState.IsValid); Assert.AreEqual("Index", viewResult.ViewName); }
public async Task Then_NotFound_returned() { var mediator = Substitute.For <IMediator>(); mediator.Send(Arg.Any <GetSequencesRequest>(), Arg.Any <CancellationToken>()) .Returns(new HandlerResponse <List <Sequence> > { Success = false, Message = "Application does not exist" }); var controller = new SequencesController(mediator); var result = await controller.GetSequences(Guid.NewGuid()); result.Result.Should().BeOfType <NotFoundObjectResult>(); }
public void Index_Returns_Json_If_Via_Ajax_Request() { // Arrange var controller = new SequencesController(null); var context = NewAjaxContext(); controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller); // Act var result = controller.Index(new SequenceGeneratorModel()); // Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(JsonResult)); var jsonResult = result as JsonResult; Assert.IsInstanceOfType(jsonResult.Data, typeof(SequenceGeneratorModel)); }
public void GetTest() { using (var context = new TrafficLightContext(ContextOptions)) { var controller = new SequencesController(context, new SequencesService()); string responseJson = controller.Get(this.sequence.Id); var responseType = new { status = "", response = new { clock = new string[2], color = "" } }; var response = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(responseJson, responseType); bool colorValid = response.response.color == "green" || response.response.color == "red"; Assert.True(colorValid); Assert.Equal("green", response.response.color); Assert.Equal(2, response.response.clock.Length); Assert.Equal("ok", response.status); } }
public void Generate_Does_Nothing_If_The_MaxValue_Is_Not_Known() { // Arrange var controller = new SequencesController(null); var model = new SequenceGeneratorModel() { MaxValue = null }; // Act var result = controller.Generate(model); // Assert Assert.IsNotNull(result); Assert.IsTrue(model.Results == null); Assert.IsInstanceOfType(result, typeof(ViewResult)); var viewResult = result as ViewResult; Assert.AreEqual("Index", viewResult.ViewName); }
public async Task And_Sequence_exists_Then_Sequence_is_returned() { var applicationId = Guid.NewGuid(); var sequenceId = Guid.NewGuid(); var mediator = Substitute.For <IMediator>(); mediator.Send(Arg.Any <GetSequenceRequest>()).Returns(new HandlerResponse <Sequence>(new Sequence() { Id = sequenceId, SequenceNo = 1, ApplicationId = applicationId })); var sequenceController = new SequencesController(mediator); var result = await sequenceController.GetSequence(applicationId, sequenceId); result.Value.Should().BeOfType <Sequence>(); result.Value.Id.Should().Be(sequenceId); }
public void Generate_Returns_A_Model_With_Results() { // Arrange var controller = new SequencesController(new [] { new AscendingSequenceCalculator() }); var model = new SequenceGeneratorModel() { MaxValue = 5 }; // Act var result = controller.Generate(model); // Assert Assert.IsNotNull(result); Assert.IsTrue(model.Results != null); Assert.AreEqual(1, model.Results.Count()); // Because we have one calculator plugged in Assert.IsInstanceOfType(result, typeof(ViewResult)); var viewResult = result as ViewResult; Assert.IsTrue(viewResult.ViewData.ModelState.IsValid); Assert.AreEqual("Index", viewResult.ViewName); }
public async Task Then_a_list_of_sequences_is_returned() { var mediator = Substitute.For <IMediator>(); var applicationId = Guid.NewGuid(); mediator.Send(Arg.Any <GetSequencesRequest>(), Arg.Any <CancellationToken>()) .Returns(new HandlerResponse <List <Sequence> > { Value = new List <Sequence> { new Sequence(), new Sequence() } }); var controller = new SequencesController(mediator); var result = await controller.GetSequences(applicationId); result.Value.Should().BeOfType <List <Sequence> >(); result.Value.Count.Should().Be(2); }
public void Process() { // Arrange var controller = new SequencesController(new[] { new EvenAscSequenceProcessor() }); var model = new SequenceModel() { SequenceValue = 5 }; // Act var result = controller.Process(model); // Assert Assert.IsNotNull(result); Assert.IsTrue(result.Data != null); Assert.IsInstanceOfType(result, typeof(JsonResult)); var viewResult = result as JsonResult; Assert.AreEqual(viewResult.JsonRequestBehavior, JsonRequestBehavior.AllowGet); }
public void Generate_Returns_Json_If_Via_Ajax_Request() { // Arrange var controller = new SequencesController(new[] { new AscendingSequenceCalculator() }); var model = new SequenceGeneratorModel() { MaxValue = 5 }; var context = NewAjaxContext(); controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller); // Act var result = controller.Generate(model); // Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(JsonResult)); var jsonResult = result as JsonResult; Assert.IsInstanceOfType(jsonResult.Data, typeof(SequenceGeneratorModel)); Assert.AreSame(jsonResult.Data, model); }