예제 #1
0
 public async Task DecodeChannelCode_TaskCanceledException()
 {
     CancellationTokenSource cts = new CancellationTokenSource(100);
     await Assert.ThrowsExceptionAsync <TaskCanceledException>(async() => {
         DecodeChannelCodeResponse decodeChannelCodeResponse = await service.DecodeChannelCodeAsync(TWICE_CHANNEL_CODE, cts.Token);
     });
 }
예제 #2
0
        public async Task DecodeChannelCode_OK()
        {
            DecodeChannelCodeResponse decodeChannelCodeResponse = await service.DecodeChannelCodeAsync(TWICE_CHANNEL_CODE);

            Assert.AreEqual(TWICE_CHANNEL_CODE, decodeChannelCodeResponse.ChannelCode);
            Assert.AreEqual(TWICE_CHANNEL_SEQ, decodeChannelCodeResponse.ChannelSeq);
        }
예제 #3
0
        public async Task <DecodeChannelCodeResponse> DecodeChannelCodeAsync(string channelCode)
        {
            ValidateChannelCode(channelCode);

            HttpRequestMessage  request  = new HttpRequestMessage(HttpMethod.Get, string.Format(_decodeChannelCodeEndpoint, _appId, channelCode));
            HttpResponseMessage response = await _http.SendAsync(request);

            if (!response.IsSuccessStatusCode)
            {
                await HandleNonSuccessStatusCodeAsync(response);
            }

            string responseText = await response.Content.ReadAsStringAsync();

            if (string.IsNullOrEmpty(responseText) || string.IsNullOrWhiteSpace(responseText))
            {
                throw new UndecodableChannelCodeException(channelCode);
            }

            dynamic responseTextDynamic = JsonConvert.DeserializeObject <dynamic>(responseText);

            if (responseTextDynamic == null ||
                (responseTextDynamic != null && responseTextDynamic["result"] == null))
            {
                throw new UnkownErrorException();
            }

            DecodeChannelCodeResponse decodeChannelCodeResponse = JsonConvert.DeserializeObject <DecodeChannelCodeResponse>(responseTextDynamic["result"].ToString());

            if (decodeChannelCodeResponse == null)
            {
                throw new UnmappableResponseException();
            }

            return(decodeChannelCodeResponse);
        }
예제 #4
0
        public async Task <About> GetAboutInfoAsync(string channelCode, CancellationToken cancellationToken)
        {
            DecodeChannelCodeResponse decodeChannelCodeResponse = await DecodeChannelCodeAsync(channelCode, cancellationToken);

            return(await GetAboutInfoAsync(decodeChannelCodeResponse.ChannelSeq, cancellationToken));
        }
예제 #5
0
        public async Task <About> GetAboutInfoAsync(string channelCode)
        {
            DecodeChannelCodeResponse decodeChannelCodeResponse = await DecodeChannelCodeAsync(channelCode);

            return(await GetAboutInfoAsync(decodeChannelCodeResponse.ChannelSeq));
        }
예제 #6
0
        public async Task <List <Notice> > GetNoticesAsync(string channelCode, CancellationToken cancellationToken)
        {
            DecodeChannelCodeResponse decodeChannelCodeResponse = await DecodeChannelCodeAsync(channelCode, cancellationToken);

            return(await GetNoticesAsync(decodeChannelCodeResponse.ChannelSeq, cancellationToken));
        }
예제 #7
0
        public async Task <List <Notice> > GetNoticesAsync(string channelCode)
        {
            DecodeChannelCodeResponse decodeChannelCodeResponse = await DecodeChannelCodeAsync(channelCode);

            return(await GetNoticesAsync(decodeChannelCodeResponse.ChannelSeq));
        }
예제 #8
0
        public async Task <UpcomingVideoListResponse> GetUpcomingVideoListAsync(string channelCode, int count, int page, CancellationToken cancellationToken)
        {
            DecodeChannelCodeResponse decodeChannelCodeResponse = await DecodeChannelCodeAsync(channelCode, cancellationToken);

            return(await GetUpcomingVideoListAsync(decodeChannelCodeResponse.ChannelSeq, count, page, cancellationToken));
        }
예제 #9
0
        public async Task <ChannelVideoListResponse> GetChannelVideoListAsync(string channelCode, int count, int page)
        {
            DecodeChannelCodeResponse decodeChannelCodeResponse = await DecodeChannelCodeAsync(channelCode);

            return(await GetChannelVideoListAsync(decodeChannelCodeResponse.ChannelSeq, count, page));
        }
예제 #10
0
 public async Task DecodeChannelCode_UndecodableChannelCodeException()
 {
     await Assert.ThrowsExceptionAsync <UndecodableChannelCodeException>(async() => {
         DecodeChannelCodeResponse decodeChannelCodeResponse = await service.DecodeChannelCodeAsync(UNDECODABLE_CHANNEL_CODE);
     });
 }
예제 #11
0
 public async Task DecodeChannelCode_ArgumentException_By_Invalid_Channel_Code()
 {
     await Assert.ThrowsExceptionAsync <ArgumentException>(async() => {
         DecodeChannelCodeResponse decodeChannelCodeResponse = await service.DecodeChannelCodeAsync(ARGUMENT_EXCEPTION_CHANNEL_CODE);
     });
 }