Example #1
0
        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();
            }
        }
Example #2
0
        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();
        }
Example #3
0
        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();
        }
Example #4
0
        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);
        }
Example #5
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);
        }
Example #6
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);
        }
Example #9
0
        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();
        }
Example #10
0
        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();
        }
Example #11
0
        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();
        }