コード例 #1
0
        public void DetectionResultHasNonSingleList(int count)
        {
            var service  = new FakeTranslateService();
            var client   = new AdvancedTranslationClientImpl(service);
            var inputs   = new string[] { "a", "b" };
            var request  = service.Detections.List(new Repeatable <string>(inputs));
            var response = new DetectionsListResponse
            {
                // This time we have the right number of top-level results, but the second
                // result doesn't have a single entry
                Detections = new List <IList <DetectionsResourceItems> >
                {
                    new List <DetectionsResourceItems> {
                        new DetectionsResourceItems {
                            Language = "en"
                        }
                    },
                    Enumerable.Repeat(new DetectionsResourceItems {
                        Language = "en"
                    }, count).ToList()
                }
            };

            service.ExpectRequest(request, response);
            Assert.Throws <InvalidOperationException>(() => client.DetectLanguages(inputs));
        }
コード例 #2
0
        public void DetectionValid()
        {
            var service  = new FakeTranslateService();
            var client   = new AdvancedTranslationClientImpl(service);
            var inputs   = new string[] { "a", "b" };
            var request  = service.Detections.List(new Repeatable <string>(inputs));
            var response = new DetectionsListResponse
            {
                Detections = new List <IList <DetectionsResourceItems> >
                {
                    new List <DetectionsResourceItems> {
                        new DetectionsResourceItems {
                            Language = "en", Confidence = 0.5f, IsReliable = true
                        }
                    },
                    new List <DetectionsResourceItems> {
                        new DetectionsResourceItems {
                            Language = "fr", Confidence = 0.8f, IsReliable = true
                        }
                    },
                }
            };

            service.ExpectRequest(request, response);
            var result = client.DetectLanguages(inputs);

            // Just check the original text and language.
            Assert.Equal("a", result[0].Text);
            Assert.Equal("en", result[0].Language);

            Assert.Equal("b", result[1].Text);
            Assert.Equal("fr", result[1].Language);
        }
コード例 #3
0
        private static IList <Detection> UnpackDetectResponse(List <string> inputs, DetectionsListResponse response)
        {
            var detections = response.Detections;

            if (inputs.Count != detections.Count)
            {
                throw new InvalidOperationException($"Expected {inputs.Count} detection results; got {detections.Count}");
            }
            var firstInvalid = detections.FirstOrDefault(list => list.Count != 1);

            if (firstInvalid != null)
            {
                throw new InvalidOperationException($"Unexpected detection result: {firstInvalid.Count} items");
            }
            return(inputs.Zip(detections, (input, resourceList) => new Detection(input, resourceList[0]))
                   .ToList());
        }
コード例 #4
0
        public void NonMatchingDetectionResultCount()
        {
            var service  = new FakeTranslateService();
            var client   = new AdvancedTranslationClientImpl(service);
            var inputs   = new string[] { "a", "b" };
            var request  = service.Detections.List(new Repeatable <string>(inputs));
            var response = new DetectionsListResponse
            {
                // Content is irrelevant; we shouldn't get that far
                Detections = new List <IList <DetectionsResourceItems> >
                {
                    new List <DetectionsResourceItems> {
                        new DetectionsResourceItems {
                            Language = "en"
                        }
                    }
                }
            };

            service.ExpectRequest(request, response);
            Assert.Throws <InvalidOperationException>(() => client.DetectLanguages(inputs));
        }