Example #1
0
        public async void when_HttpResponse_is_OK_Back()
        {
            var idCardRequest = BuildDefaultIDCardRequest("http://xxx.com/idcard.jpg");

            idCardRequest.Type = IDCardType.Back;
            var aliyunOptions = BuildDefaultAliyunOCROptions("http://aliyun.com/ocrapi");

            aliyunOptions.Appcode = "testcode";

            var json = this.GetBelongAssemblyResourceText("aliyun_ocr_back_response.json");

            var httpClient = MockHttpClientBuilder.New
                             .AddBytesResponse("idcard.jpg", new byte[] { 1 })
                             .AddJsonResponse("ocrapi", json)
                             .Build();

            aliyunOptions.HttpClient = httpClient;

            IIDCardClient aliyunIDcard = new AliyunIDCardClient(aliyunOptions);

            var response = await aliyunIDcard.DetectAsync(idCardRequest);

            Assert.True(response.Success, response.Message);
            var idCard = response.Result;

            Assert.Equal("杭州市公安局", idCard.Authority);
            Assert.Equal("19700101", idCard.StartDate);
            Assert.Equal("19800101", idCard.EndDate);
            Assert.Null(idCard.Name);
            Assert.Null(idCard.Nation);
            Assert.Null(idCard.Birth);
            Assert.Null(idCard.Address);
            Assert.Null(idCard.Id);
            Assert.Null(idCard.Gender);
        }
Example #2
0
        public async void when_HttpResponse_is_OK_Face()
        {
            var idCardRequest = BuildDefaultIDCardRequest("http://xxx.com/idcard.jpg");

            idCardRequest.Type = IDCardType.Face;
            var aliyunOptions = BuildDefaultAliyunOCROptions("http://aliyun.com/ocrapi");

            aliyunOptions.Appcode = "testcode";

            var json = this.GetBelongAssemblyResourceText("aliyun_ocr_face_response.json");

            var httpClient = MockHttpClientBuilder.New
                             .AddBytesResponse("idcard.jpg", new byte[] { 1 })
                             .AddJsonResponse(request => VerifyHttpRequestMessage(request), json)
                             .Build();

            aliyunOptions.HttpClient = httpClient;

            IIDCardClient aliyunIDcard = new AliyunIDCardClient(aliyunOptions);

            var response = await aliyunIDcard.DetectAsync(idCardRequest);

            Assert.True(response.Success, response.Message);
            var idCard = response.Result;

            idCard.Name.Should().Be("张三");
            idCard.Nation.Should().Be("汉");
            idCard.Birth.Should().Be("20000101");
            idCard.Address.Should().Be("浙江省杭州市余杭区文一西路969号");
            idCard.Id.Should().Be("1234567890");
            idCard.Gender.Should().Be(Gender.Male);
            idCard.Authority.Should().BeNull();
            idCard.StartDate.Should().BeNull();
            idCard.EndDate.Should().BeNull();
        }
Example #3
0
        public async void when_IDCardRequest_isNull()
        {
            var           aliyunOptions = BuildDefaultAliyunOCROptions();
            IIDCardClient aliyunIDcard  = new AliyunIDCardClient(aliyunOptions);

            await Assert.ThrowsAsync <ArgumentNullException>(() => aliyunIDcard.DetectAsync(null));
        }
Example #4
0
        public async void when_HttpResponse_is_InternalServerError()
        {
            var idCardRequest = BuildDefaultIDCardRequest("http://xxx.com/idcard.jpg");
            var aliyunOptions = BuildDefaultAliyunOCROptions("http://aliyun.com/ocrapi");

            var httpClient = MockHttpClientBuilder.New
                             .AddBytesResponse("idcard.jpg", new byte[] { 1 })
                             .AddStatusCodeResponse("ocrapi", HttpStatusCode.InternalServerError)
                             .Build();

            aliyunOptions.HttpClient = httpClient;

            IIDCardClient aliyunIDcard = new AliyunIDCardClient(aliyunOptions);

            var response = await aliyunIDcard.DetectAsync(idCardRequest);

            Assert.False(response.Success);
        }