using NUnit.Framework;
using OpenTap.Package;
namespace OpenTap.Image.Tests
{
[TestFixture]
public class Deserialize
{
[Test]
public void TestJsonImage()
{
string imageJson = @"
{
""Packages"": [
{
""Name"": ""Demonstration""
},
{
""Name"": ""Yardstick"",
""Version"": ""beta"",
""OS"": ""Windows"",
""Architecture"": ""AnyCPU""
},
{
""Name"": ""OpenTAP"",
""Version"": ""9.15.2""
},
{
""Name"": ""REST-API"",
""Version"": ""beta""
}
],
""Repositories"": [
""https://packages.opentap.io"",
""https://packages.opentap.keysight.com""
]
}";
var specifier = ImageSpecifier.FromString(imageJson);
Assert.True(specifier.Packages.Count == 4);
Assert.True(specifier.Packages[0].Name == "Demonstration");
Assert.True(specifier.Packages[1].Name == "Yardstick");
Assert.True(specifier.Packages[2].Name == "OpenTAP");
Assert.True(specifier.Packages[3].Name == "REST-API");
Assert.True(specifier.Packages[1].Version == VersionSpecifier.Parse("beta"));
Assert.True(specifier.Packages[1].Architecture == CpuArchitecture.AnyCPU);
Assert.True(specifier.Packages[1].OS == "Windows");
Assert.True(specifier.Repositories.Count == 2);
Assert.True(specifier.Repositories[0] == "https://packages.opentap.io");
Assert.True(specifier.Repositories[1] == "https://packages.opentap.keysight.com");
}
[Test]
public void TestXmlImage()
{
string imageXml = @"
https://packages.opentap.io
C:\git\installercreate\bin\Debug
";
var specifier = ImageSpecifier.FromString(imageXml);
//TapSerializer tapSerializer = new TapSerializer();
//tapSerializer.AddSerializers(new List() { new PackageSpecifierSerializerPlugin() });
//string valueReSerialized = tapSerializer.SerializeToString(specifier);
Assert.True(specifier.Packages.Count == 3);
Assert.True(specifier.Packages[0].Name == "Editor");
Assert.True(specifier.Packages[1].Name == "TUI");
Assert.True(specifier.Packages[2].Name == "Demonstration");
Assert.True(specifier.Packages[0].Version == VersionSpecifier.Parse("9.9.1+ca3d0108"));
Assert.True(specifier.Packages[0].Architecture == CpuArchitecture.x64);
Assert.True(specifier.Packages[0].OS == "Windows");
Assert.True(specifier.Packages[1].Version == VersionSpecifier.Parse("any"));
Assert.True(specifier.Packages[2].Version == VersionSpecifier.Parse("9.0.3+cb113229"));
Assert.True(specifier.Packages[2].Architecture == CpuArchitecture.AnyCPU);
Assert.True(specifier.Packages[2].OS == "Windows,Linux");
Assert.True(specifier.Repositories.Count == 2);
Assert.True(specifier.Repositories[0] == "https://packages.opentap.io");
Assert.True(specifier.Repositories[1] == @"C:\git\installercreate\bin\Debug");
}
}
}