public async Task GivenContactRequest_WhenFullLifeCycle_ShouldPass() { TestWebsiteHost host = TestApplication.GetHost(); const int max = 10; IReadOnlyList <ContactRequest> list = Enumerable.Range(0, max) .Select(x => new ContactRequest { Name = $"Name_{x}", Email = $"Email_{x}", Subject = $"Subject_{x}", Message = $"Message_{x}", RequestResume = x % 2 == 0, }).ToList(); await list .ForEachAsync(async x => await host.ContactRequestClient.Set(x)); List <ContactRequest> readList = new List <ContactRequest>(); foreach (var item in list) { ContactRequest?contactRequest = await host.ContactRequestClient.Get(item.RequestId); contactRequest.Should().NotBeNull(); (item == contactRequest).Should().BeTrue(); (await host.ContactRequestClient.Delete(item.RequestId)).Should().BeTrue(); } }
public async Task GivenFakePackage_WhenFullLifeCycle_ShouldPass() { TestWebsiteHost host = TestApplication.GetHost(); const string payload = "This is a test"; string id = "fake1"; byte[] bytes = Encoding.UTF8.GetBytes(payload); ArticlePayload articlePayload = bytes.ToArticlePayload((ArticleId)id); await host.ArticleClient.Set(articlePayload); ArticlePayload?readPayload = await host.ArticleClient.Get((ArticleId)id); readPayload.Should().NotBeNull(); (articlePayload == readPayload).Should().BeTrue(); string payloadText = Encoding.UTF8.GetString(readPayload !.ToBytes()); payloadText.Should().Be(payload); BatchSet <string> searchList = await host.ArticleClient.List(QueryParameters.Default).ReadNext(); searchList.Should().NotBeNull(); searchList.Records.Any(x => x.StartsWith(id)).Should().BeTrue(); (await host.ArticleClient.Delete((ArticleId)id)).Should().BeTrue(); searchList = await host.ArticleClient.List(QueryParameters.Default).ReadNext(); searchList.Should().NotBeNull(); searchList.Records.Any(x => x.StartsWith(id)).Should().BeFalse(); }
public async Task WhenReady_ShouldReturnOk() { TestWebsiteHost host = TestApplication.GetHost(); PingClient pingClient = host.GetPingClient(); (bool ok, PingResponse? response) = await pingClient.Ready(); ok.Should().BeTrue(); response.Should().NotBeNull(); }
public async Task GivenTestModel_WhenGetLogs_ShouldResponsed() { TestWebsiteHost host = await TestApplication.GetHost(); await host.WaitForStartup(); PingLogs pingLogs = await new ModelRestApi(host.Client).GetLogs(); pingLogs.Should().NotBeNull(); pingLogs.Messages.Should().NotBeNull(); pingLogs.Messages !.Count.Should().BeGreaterThan(0); }
public async Task WhenAskedForLogs_ShouldReturnData() { TestWebsiteHost host = TestApplication.GetHost(); PingClient pingClient = host.GetPingClient(); PingLogs?logs = await pingClient.GetLogs(); logs.Should().NotBeNull(); logs !.Count.Should().BeGreaterThan(0); logs.Messages.Should().NotBeNull(); logs.Messages !.Count.Should().BeGreaterThan(0); }
public async Task GivenRealPackage_WhenFullLifeCycleInFolder_ShouldPass() { TestWebsiteHost host = TestApplication.GetHost(); string specFile = new TestResources().WriteTestData_1(); string buildFolder = Path.Combine(Path.GetTempPath(), nameof(nBlog), "build", Guid.NewGuid().ToString()); string packageFile = new ArticlePackageBuilder() .SetSpecFile(specFile) .SetBuildFolder(buildFolder) .SetObjFolder(Path.Combine(buildFolder, "obj")) .Build(); byte[] packageBytes = File.ReadAllBytes(packageFile); ArticlePayload articlePayload = packageBytes.ToArticlePayload(); ArticleManifest articleManifest = packageBytes.ReadManifest(); await host.ArticleClient.Set(articlePayload); ArticlePayload?readPayload = await host.ArticleClient.Get((ArticleId)articlePayload.Id); readPayload.Should().NotBeNull(); ArticleManifest readArticleManifest = articlePayload.ReadManifest(); articleManifest.ArticleId.Should().Be(readArticleManifest.ArticleId); articleManifest.PackageVersion.Should().Be(readArticleManifest.PackageVersion); articleManifest.Title.Should().Be(readArticleManifest.Title); articleManifest.Summary.Should().Be(readArticleManifest.Summary); articleManifest.Author.Should().Be(readArticleManifest.Author); articleManifest.ImageFile.Should().Be(readArticleManifest.ImageFile); articleManifest.Date.Should().Be(readArticleManifest.Date); Enumerable.SequenceEqual(articleManifest.Tags !, readArticleManifest.Tags !).Should().BeTrue(); Enumerable.SequenceEqual(articleManifest.Categories !, readArticleManifest.Categories !).Should().BeTrue(); (articlePayload == readPayload).Should().BeTrue(); BatchSet <string> searchList = await host.ArticleClient.List(QueryParameters.Default).ReadNext(); searchList.Should().NotBeNull(); searchList.Records.Any(x => x.StartsWith(articlePayload.Id)).Should().BeTrue(); (await host.ArticleClient.Delete((ArticleId)articlePayload.Id)).Should().BeTrue(); searchList = await host.ArticleClient.List(QueryParameters.Default).ReadNext(); searchList.Should().NotBeNull(); searchList.Records.Any(x => x.StartsWith(articlePayload.Id)).Should().BeFalse(); }
public async Task GivenTestModel_WhenUsed_ShouldResponed() { TestWebsiteHost host = await TestApplication.GetHost(); await host.WaitForStartup(); var request = new PredictRequest { Request = "I am sad", }; PredictResponse predictResponse = (await new ModelRestApi(host.Client).PostRequest(request)).Value !; Verify(predictResponse, request.Request); }
public async Task GivenTestModelOldApi_WhenUsed_ShouldResponed() { TestWebsiteHost host = await TestApplication.GetHost(); await host.WaitForStartup(); var question = new PredictRequest { Sentence = "I am happy", }; #pragma warning disable CS0618 // Type or member is obsolete PredictResponse predictResponse = await host.Client.PostMlQuestion(question); #pragma warning restore CS0618 // Type or member is obsolete Verify(predictResponse, question.Sentence); }
public async Task GivenMlHost_WhenPing_ShouldResponed() { TestWebsiteHost host = await TestApplication.GetHost(); IJson jsonSerializer = host.Resolve <IJson>(); var response = await host.Client.GetAsync("api/ping"); response.EnsureSuccessStatusCode(); var responseString = await response.Content.ReadAsStringAsync(); PingResponse pingResponse = jsonSerializer.Deserialize <PingResponse>(responseString); pingResponse.Should().NotBeNull(); pingResponse.Status.Should().NotBeNullOrEmpty(); pingResponse.Status.Func(x => _validResponses.Contains(x !)).Should().BeTrue(); }
public async Task GivenArticleManifest_WhenFullLifeCycle_ShouldPass() { TestWebsiteHost host = TestApplication.GetHost(); const int max = 10; var directory = new ArticleDirectory { Articles = Enumerable.Range(0, max) .Select(x => new ArticleManifest { ArticleId = $"ArticleId-{x}", Title = $"Title_{x}", Date = new DateTime(2020, 1, 5), }).ToList() }; await host.DirectoryClient.Set(directory); ArticleDirectory?readDirectory = await host.DirectoryClient.Get(); readDirectory.Should().NotBeNull(); directory.Articles.Count.Should().Be(readDirectory !.Articles.Count); var list = directory.Articles .Zip(readDirectory !.Articles, (o, i) => (o, i)) .ToList(); foreach (var item in list) { (item.o == item.i).Should().BeTrue(); } await host.DirectoryClient.Delete(); readDirectory = await host.DirectoryClient.Get(); readDirectory.Should().BeNull(); }
public async Task GivenData_WhenRoundTrip_ShouldMatch(string id) { TestWebsiteHost host = TestApplication.GetHost(); const string payload = "This is a test"; ArtifactId artifactId = new ArtifactId(id); byte[] bytes = Encoding.UTF8.GetBytes(payload); ArtifactPayload articlePayload = bytes.ToArtifactPayload(artifactId); await host.ArtifactClient.Set(articlePayload); ArtifactPayload?readPayload = await host.ArtifactClient.Get(artifactId); readPayload.Should().NotBeNull(); (articlePayload == readPayload).Should().BeTrue(); string payloadText = Encoding.UTF8.GetString(readPayload !.ToBytes()); payloadText.Should().Be(payload); var search = new QueryParameter { Namespace = artifactId.Namespace }; BatchSet <string> searchList = await host.ArtifactClient.List(search).ReadNext(); searchList.Should().NotBeNull(); searchList.Records.Any(x => x.StartsWith(artifactId.Path)).Should().BeTrue(); (await host.ArtifactClient.Delete(artifactId)).Should().BeTrue(); searchList = await host.ArtifactClient.List(search).ReadNext(); searchList.Should().NotBeNull(); searchList.Records.Any(x => x.StartsWith(artifactId.Path)).Should().BeFalse(); }