private HttpResponseMessage SendGetChannelsRequest(int channelId, IMessagesData data) { var model = new SearchChannelsBindingModel { ChannelId = channelId }; var controller = new ChannelsController(data); this.SetupController(controller); var response = controller.GetChannelById(model) .ExecuteAsync(CancellationToken.None).Result; return response; }
public void GetChannelById_NonExistingChannel_ShouldReturn404NotFound() { // Arrange -> create a few channels var dataLayerMock = new MessagesDataMock(); var channelsMock = dataLayerMock.Channels; channelsMock.Add(new Channel() { Id = 1, Name = "Channel #1" }); channelsMock.Add(new Channel() { Id = 2, Name = "Channel #2" }); channelsMock.Add(new Channel() { Id = 3, Name = "Channel #3" }); // Act -> Get channel by ID var channelsController = new ChannelsController(dataLayerMock); this.SetupControllerForTesting(channelsController, "channels"); var httpResponse = channelsController.GetChannelById(20) .ExecuteAsync(new CancellationToken()).Result; // Assert -> HTTP status code 404 (Not Found) Assert.AreEqual(HttpStatusCode.NotFound, httpResponse.StatusCode); }
public void GetChannelById_ExistingChannel_ShouldReturn200OK_CorrectChannelData() { // Arrange -> create a few channels var dataLayerMock = new MessagesDataMock(); var channelsMock = dataLayerMock.Channels; channelsMock.Add(new Channel() { Id = 1, Name = "Channel #1" }); channelsMock.Add(new Channel() { Id = 2, Name = "Channel #2" }); channelsMock.Add(new Channel() { Id = 3, Name = "Channel #3" }); // Act -> Get channel by ID var channelsController = new ChannelsController(dataLayerMock); this.SetupControllerForTesting(channelsController, "channels"); var httpResponse = channelsController.GetChannelById(2) .ExecuteAsync(new CancellationToken()).Result; // Assert -> HTTP status code 200 (OK) + correct channel data Assert.AreEqual(HttpStatusCode.OK, httpResponse.StatusCode); var channel2 = httpResponse.Content.ReadAsAsync<ChannelModel>().Result; Assert.AreEqual(2, channel2.Id); Assert.AreEqual("Channel #2", channel2.Name); }