public void GetScheduleAsync_String_string_When_Region_Is_Invalid_Then_Throws_ArgumentException(string invalidRegion) { var httpClientMock = Substitute.For <IHttpClient>(); using (var provider = new CezHdoProvider(httpClientMock, CezHdoProvider.DEFAULT_HDO_API_URL)) { Assert.CatchAsync <ArgumentException>(async() => await provider.GetScheduleAsync(invalidRegion, TEST_HDO_CODE)); } }
public void GetScheduleAsync_When_Hdo_Code_Is_Invalid_Then_Throws_ArgumentException(string invalidHdoCode) { var httpClientMock = Substitute.For <IHttpClient>(); using (var provider = new CezHdoProvider(httpClientMock, CezHdoProvider.DEFAULT_HDO_API_URL)) { Assert.CatchAsync <ArgumentException>(async() => await provider.GetScheduleAsync(CezRegion.stred, invalidHdoCode)); } }
public void GetScheduleAsync_When_Request_Details_Is_Null_Then_Throws_ArgumentNullException() { var emptyJson = String.Empty; var provider = new CezHdoProvider(new SimpleHttpClientStub(emptyJson), CezHdoProvider.DEFAULT_HDO_API_URL); Dictionary <string, string> nullRequestDetail = null; Assert.CatchAsync <ArgumentNullException>(async() => { var _ = await provider.GetScheduleAsync(nullRequestDetail); }); }
public void GetScheduleAsync_When_Area_Is_Missing_And_Full_Request_Url_Not_Provided_Then_Throws_HdoException() { var emptyJson = String.Empty; var provider = new CezHdoProvider(new SimpleHttpClientStub(emptyJson), CezHdoProvider.DEFAULT_HDO_API_URL); Assert.CatchAsync <HdoException>(async() => { var _ = await provider.GetScheduleAsync(new Dictionary <string, string> { [CezHdoProvider.HDO_CODE_KEY] = TEST_HDO_CODE, }); }); }
public void GetScheduleAsync_When_Empty_Response_Then_Throws_HdoException() { var emptyJson = String.Empty; var provider = new CezHdoProvider(new SimpleHttpClientStub(emptyJson), CezHdoProvider.DEFAULT_HDO_API_URL); Assert.CatchAsync <HdoException>(async() => { var _ = await provider.GetScheduleAsync(new Dictionary <string, string> { [CezHdoProvider.HDO_CODE_KEY] = TEST_HDO_CODE, [CezHdoProvider.AREA_KEY] = CezRegion.stred.ToString() }); }); }
public async Task GetScheduleAsync_String_String_When_Valid_Json_Then_Returns_Expected_Schedule() { var expectedSchedule = getExpectedValidSchedule(); var validJson = getValidCezJsonResponse(); HdoSchedule schedule; using (var provider = new CezHdoProvider(new SimpleHttpClientStub(validJson), CezHdoProvider.DEFAULT_HDO_API_URL)) { schedule = await provider.GetScheduleAsync(CezRegion.stred.ToString(), TEST_HDO_CODE); } Assert.AreEqual(expectedSchedule, schedule); }
public async Task GetScheduleAsync_When_Invalid_Json_Then_Returns_Empty_Schedule() { var expectedEmptyCezSchedule = new HdoSchedule(nameof(CezHdoProvider), Enumerable.Empty <HdoScheduleIntervalDefinition>()); var invalidJson = File.ReadAllText(Path.Combine(TestContext.CurrentContext.TestDirectory, TEST_DATA_DIRECTORY, EMPTY_DATA_RESPONSE_CEZ_JSON)); HdoSchedule schedule; using (var provider = new CezHdoProvider(new SimpleHttpClientStub(invalidJson), CezHdoProvider.DEFAULT_HDO_API_URL)) { schedule = await provider.GetScheduleAsync(new Dictionary <string, string> { [CezHdoProvider.HDO_CODE_KEY] = TEST_HDO_CODE, [CezHdoProvider.AREA_KEY] = CezRegion.stred.ToString() }); } Assert.AreEqual(expectedEmptyCezSchedule, schedule); }
public async Task GetScheduleAsync_When_Full_Request_Url_Not_Provided_Then_Provider_Uses_Default_Url() { var validJson = getValidCezJsonResponse(); var httpClientMock = Substitute.For <IHttpClient>(); httpClientMock.SendGetAsync(Arg.Any <Uri>()).Returns(validJson); using (var provider = new CezHdoProvider(httpClientMock, CezHdoProvider.DEFAULT_HDO_API_URL)) { var _ = await provider.GetScheduleAsync(new Dictionary <string, string> { [CezHdoProvider.HDO_CODE_KEY] = TEST_HDO_CODE, [CezHdoProvider.AREA_KEY] = CezRegion.stred.ToString() }); } await httpClientMock.Received().SendGetAsync(Arg.Is <Uri>(uri => uri.ToString().StartsWith(CezHdoProvider.DEFAULT_HDO_API_URL.ToString()))); }
public async Task GetScheduleAsync_When_Full_Request_Url_Provided_Then_Provider_Uses_Full_Request_Url() { var expectedRequestUri = new Uri("https://example.com"); var validJson = getValidCezJsonResponse(); var httpClientMock = Substitute.For <IHttpClient>(); httpClientMock.SendGetAsync(Arg.Any <Uri>()).Returns(validJson); using (var provider = new CezHdoProvider(httpClientMock, CezHdoProvider.DEFAULT_HDO_API_URL)) { var _ = await provider.GetScheduleAsync(new Dictionary <string, string> { [CezHdoProvider.HDO_CODE_KEY] = TEST_HDO_CODE, [CezHdoProvider.AREA_KEY] = CezRegion.stred.ToString(), [CezHdoProvider.PREDEFINED_FULL_API_URL_KEY] = expectedRequestUri.ToString() }); } await httpClientMock.Received().SendGetAsync(expectedRequestUri); }