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 TrafficLight() { this.light = new Light(); this.context = new TrafficLightContext(light); this.context.Observer = ObserverTrace.Instance(traceName); this.context.EndHandler += new EventHandler <EventArgs>(StateMachineEnd); this.context.EnterInitialState(); }
public void Setup() { repository = new MockRepository(); this.light = new Light(); this.observer = repository.StrictMock <IObserver>(); this.context = new TrafficLightContext(this.light); this.context.Observer = this.observer; this.context.EndHandler += new EventHandler <EventArgs>(StateMachineEnd); }
private void Seed() { using (var context = new TrafficLightContext(ContextOptions)) { context.Database.EnsureDeleted(); context.Database.EnsureCreated(); Sequence sequence = new Sequence(); this.sequence = sequence; context.Add(sequence); context.SaveChanges(); } }
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 void CreateTest() { using (var context = new TrafficLightContext(ContextOptions)) { var controller = new ObservationsController(context, new SequencesService(), new ObservationsService(context)); ObservationRequest request = new ObservationRequest() { Sequence = sequence.Id, Observation = new UserObservation() { Color = sequence.StartColor, Numbers = new string[2] { "1110111", "0011101" } } }; string firstResponseJson = controller.Create(request).Result; var responseType = new { status = "", response = new { start = new int[1], missing = new string[1] } }; var firstResponse = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(firstResponseJson, responseType); Thread.Sleep(1000); request.Observation.Numbers[1] = "0010000"; var secondResponseJson = controller.Create(request).Result; var secondResponse = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(secondResponseJson, responseType); Thread.Sleep(1000); request.Observation.Numbers = null; request.Observation.Color = "red"; var redResponseJson = controller.Create(request).Result; var redResponse = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(redResponseJson, responseType); Assert.NotNull(firstResponse.response); Assert.NotNull(firstResponse.response.missing); Assert.Equal(new int[4] { 2, 8, 82, 88 }, firstResponse.response.start); Assert.Equal(2, firstResponse.response.missing.Length); Assert.Equal("1000000", firstResponse.response.missing[1]); Assert.Equal("0000000", firstResponse.response.missing[0]); Assert.Equal("ok", firstResponse.status); Assert.NotNull(secondResponse.response); Assert.NotNull(secondResponse.response.missing); Assert.Equal("1000010", secondResponse.response.missing[1]); Assert.Equal("ok", secondResponse.status); Assert.NotNull(redResponse.response); Assert.NotNull(redResponse.response.missing); Assert.Equal("1000010", redResponse.response.missing[1]); Assert.Equal("ok", redResponse.status); } }
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 SequencesController(TrafficLightContext db, SequencesService sequencesService) { _db = db; _sequencesService = sequencesService; }
public ObservationsController(TrafficLightContext db, SequencesService sequencesService, ObservationsService observationsService) { _db = db; _sequencesService = sequencesService; _observationsService = observationsService; }