chr
2026-04-05 fe750b791d5b517cc4e9bc8e99a9a75139a0cfba
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
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 = @"<?xml version=""1.0""?>
<Image>
  <Packages>
    <PackageSpecifier Name=""Editor"" Version=""9.9.1+ca3d0108"" OS=""Windows"" Architecture=""x64"" />
    <PackageSpecifier Name=""TUI"" Version=""any"" />
    <PackageSpecifier Name=""Demonstration"" Version=""9.0.3+cb113229"" OS=""Windows,Linux"" Architecture=""AnyCPU"" />
  </Packages>
  <Repositories>
    <string>https://packages.opentap.io</string>
    <string>C:\git\installercreate\bin\Debug</string>
  </Repositories>
</Image>
";
 
            var specifier = ImageSpecifier.FromString(imageXml);
 
            //TapSerializer tapSerializer = new TapSerializer();
            //tapSerializer.AddSerializers(new List<ITapSerializerPlugin>() { 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");
        }
    }
}