Example #1
0
        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);
            }
        }
Example #2
0
        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);
            }
        }
Example #4
0
        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);
        }
Example #13
0
        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);
        }