public async Task GetServiceStatusExceptionAsync()
        {
            //Arrange
            var fakeHttpClientService = A.Fake <IHttpClientService <ISpellcheckService> >(ops => ops.Strict());
            var fakeLogger            = A.Fake <IApplicationLogger>(ops => ops.Strict());
            var policy = new TolerancePolicy(fakeLogger, new TransientFaultHandlingStrategy(new InMemoryConfigurationProvider()));
            var json   = "{\"_type\": \"Cause Exception\"}";
            var fakeHttpResponseMessage = new HttpResponseMessage
            {
                Content      = new StringContent(json, Encoding.UTF8, "application/json"),
                StatusCode   = System.Net.HttpStatusCode.ServiceUnavailable,
                ReasonPhrase = nameof(GetServiceStatusAsync)
            };

            A.CallTo(() => fakeHttpClientService.GetAsync(A <string> ._, A <FaultToleranceType> ._)).Returns(fakeHttpResponseMessage);
            A.CallTo(() => fakeHttpClientService.AddHeader(Constants.OcpApimSubscriptionKey, A <string> ._)).Returns(true);
            A.CallTo(() => fakeLogger.LogExceptionWithActivityId(A <string> ._, A <Exception> ._)).Returns("Exception logged");

            //Act
            var spellingService = new SpellCheckService(fakeHttpClientService, fakeLogger);
            var serviceStatus   = await spellingService.GetCurrentStatusAsync();

            //Asserts
            serviceStatus.Status.Should().NotBe(ServiceState.Green);
            serviceStatus.Notes.Should().Contain("Exception logged");
            A.CallTo(() => fakeLogger.LogExceptionWithActivityId(A <string> ._, A <Exception> ._)).MustHaveHappened();
        }
        public async Task GetServiceStatusAsync(bool suggestionsReturned, ServiceState expectedServiceStatus, bool isResponseSuccess)
        {
            //Arrange
            var fakeHttpClientService = A.Fake <IHttpClientService <ISpellcheckService> >(ops => ops.Strict());
            var fakeLogger            = A.Fake <IApplicationLogger>();
            var policy = new TolerancePolicy(fakeLogger, new TransientFaultHandlingStrategy(new InMemoryConfigurationProvider()));

            var json = suggestionsReturned ? "{\"_type\": \"SpellCheck\", \"flaggedTokens\": [{\"offset\": 0, \"token\": \"pluse\", \"type\": \"UnknownToken\", \"suggestions\": [{\"suggestion\": \"pulse\", \"score\": 1}]}]}\r\n" : "{\"_type\": \"SpellCheck\", \"flaggedTokens\": []}";
            var fakeHttpResponseMessage = new HttpResponseMessage
            {
                Content      = new StringContent(json, Encoding.UTF8, "application/json"),
                StatusCode   = isResponseSuccess ? System.Net.HttpStatusCode.OK : System.Net.HttpStatusCode.ServiceUnavailable,
                ReasonPhrase = nameof(GetServiceStatusAsync)
            };

            //Setup Dummies and Mocks
            A.CallTo(() => fakeHttpClientService.GetAsync(A <string> ._, A <FaultToleranceType> ._)).Returns(fakeHttpResponseMessage);
            A.CallTo(() => fakeHttpClientService.AddHeader(Constants.OcpApimSubscriptionKey, A <string> ._)).Returns(true);

            //Act
            var spellingService = new SpellCheckService(fakeHttpClientService, fakeLogger);
            var serviceStatus   = await spellingService.GetCurrentStatusAsync();

            //Asserts
            serviceStatus.Status.Should().Be(expectedServiceStatus);
        }
        public async Task CheckSpellingAsyncTest(string term, bool suggestionsReturned, bool isResponseSuccess)
        {
            //Arrange
            var fakeHttpClientService = A.Fake <IHttpClientService <ISpellcheckService> >(ops => ops.Strict());
            var fakeLogger            = A.Fake <IApplicationLogger>();
            var policy = new TolerancePolicy(fakeLogger, new TransientFaultHandlingStrategy(new InMemoryConfigurationProvider()));

            var json = suggestionsReturned ? "{\"_type\": \"SpellCheck\", \"flaggedTokens\": [{\"offset\": 0, \"token\": \"pluse\", \"type\": \"UnknownToken\", \"suggestions\": [{\"suggestion\": \"pulse\", \"score\": 1}]}]}\r\n" : "{\"_type\": \"SpellCheck\", \"flaggedTokens\": []}";
            var fakeHttpResponseMessage = new HttpResponseMessage
            {
                Content    = new StringContent(json, Encoding.UTF8, "application/json"),
                StatusCode = isResponseSuccess ? System.Net.HttpStatusCode.OK : System.Net.HttpStatusCode.ServiceUnavailable
            };

            A.CallTo(() => fakeHttpClientService.GetAsync(A <string> ._, A <FaultToleranceType> ._)).Returns(fakeHttpResponseMessage);
            A.CallTo(() => fakeHttpClientService.AddHeader(Constants.OcpApimSubscriptionKey, A <string> ._)).Returns(true);

            //Act
            var spellingService = new SpellCheckService(fakeHttpClientService, fakeLogger);
            var result          = await spellingService.CheckSpellingAsync(term);

            //Assert
            if (isResponseSuccess && suggestionsReturned)
            {
                result.HasCorrected.Should().BeTrue();
            }
            else
            {
                result.HasCorrected.Should().BeFalse();
            }
        }
Esempio n. 4
0
        public void TestSpelling()
        {
            SpellCheckService svc = new SpellCheckService();

            String text = "spelllt wrong";

            List <String> errors = svc.GetSpellingErrors(text, null);

            Assert.IsNotNull(errors);

            Assert.AreEqual(1, errors.Count);
        }
Esempio n. 5
0
        public void TestSuggestions()
        {
            SpellCheckService svc = new SpellCheckService();

            String text = "spelllt";

            List <String> suggestions = svc.GetSuggestions(text, null);

            Assert.IsNotNull(suggestions);

            Assert.IsTrue(suggestions.Count > 0);

            foreach (String suggestion in suggestions)
            {
                Assert.IsTrue(suggestion.StartsWith("sp"));
            }
        }
 public WordController(SpellCheckService spellCheckService)
 {
     _spellCheckService = spellCheckService;
 }