File: CommandTests\Tool\Search\NugetSearchApiDeserializerTests.cs
Web Access
Project: ..\..\..\test\dotnet.Tests\dotnet.Tests.csproj (dotnet.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using Microsoft.DotNet.Cli.NugetSearch;
using Microsoft.DotNet.Cli.ToolPackage;
 
namespace dotnet.Tests.ToolSearchTests
{
    public class NugetSearchApiDeserializerTests
    {
        [Fact]
        public void ItCanDeserialize()
        {
            var json = File.ReadAllText("queryResultSample.json");
 
            var result = NugetSearchApiResultDeserializer.Deserialize(json);
 
            var firstItem = result.First();
            firstItem.Authors.Should().ContainSingle("author is a scalar");
            firstItem.Description.Should().Be("test app");
            firstItem.Id.Should().Be(new PackageId("global.tool.console.demo"));
            firstItem.LatestVersion.Should().Be("1.0.4");
            firstItem.Summary.Should().Be("The summary");
            firstItem.Tags.Should().ContainSingle("test");
            firstItem.TotalDownloads.Should().Be(20);
            firstItem.Verified.Should().BeFalse();
            firstItem.Versions.Single().Downloads.Should().Be(20);
            firstItem.Versions.Single().Version.Should().Be("1.0.4");
 
            var secondItem = result.Skip(1).First();
            secondItem.Authors.Should().ContainInOrder("author1", "authors2");
        }
    }
}