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(); } }
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); }
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; }