public void TestEquals()
        {
            var g1 = new AgentDemandSet("g1", new HashSet <AgentCapability> {
                new AgentCapability("c1", "v1")
            });
            var g2 = new AgentDemandSet("g1", new HashSet <AgentCapability> {
                new AgentCapability("c1", "v1")
            });

            Assert.AreEqual(g1, g2);
        }
Exemple #2
0
        public void TestPorperties()
        {
            var mg = new AgentDemandSet(
                "Linux ARM32",
                new HashSet <AgentCapability>
            {
                new AgentCapability("Agent.OS", "Linux"),
                new AgentCapability("agent-osbits", "32"),
            });

            Assert.AreEqual("Linux ARM32", mg.Name);
            var ac = mg.Capabilities.First();

            Assert.AreEqual("agent-osbits", ac.Name);
            Assert.AreEqual("32", ac.Value);
        }
Exemple #3
0
        public void TestEquals()
        {
            var g1 = new AgentDemandSet("g1", new HashSet <AgentCapability> {
                new AgentCapability("c1", "v1")
            });
            var g2 = new AgentDemandSet("g1", new HashSet <AgentCapability> {
                new AgentCapability("c1", "v1")
            });

            Assert.False(g1.Equals(null));
            Assert.True(g1.Equals(g1));
            Assert.True(g1.Equals(g2));

            Assert.False(g1.Equals((object)null));
            Assert.True(g1.Equals((object)g1));
            Assert.True(g1.Equals((object)g2));
            Assert.False(g1.Equals(new object()));
        }
Exemple #4
0
        public void TestUpdate()
        {
            var agents = new HashSet <IoTEdgeAgent>();
            var agent1 = new IoTEdgeAgent(
                38324,
                "iotedge-pi-04",
                "version",
                VstsAgentStatus.Online,
                true,
                new HashSet <AgentCapability>
            {
                new AgentCapability("Agent.OS", "Linux"),
                new AgentCapability("Agent.OSArchitecture", "ARM"),
            },
                new HashSet <AgentCapability>
            {
                new AgentCapability("agent-osbits", "32"),
                new AgentCapability("run-stress", "true"),
            });

            agents.Add(agent1);

            var agent2 = new IoTEdgeAgent(
                39472,
                "iotedge-win5",
                "version",
                VstsAgentStatus.Online,
                true,
                new HashSet <AgentCapability>
            {
                new AgentCapability("Agent.OS", "Windows_NT"),
                new AgentCapability("Agent.OSArchitecture", "X64"),
            },
                new HashSet <AgentCapability>
            {
                new AgentCapability("agent-os-name", "WinPro_x64"),
                new AgentCapability("run-long-haul", "true"),
            });

            agents.Add(agent2);

            var agentMatrix = new AgentMatrix();

            agentMatrix.Update(agents);

            var rowGroup1 = new AgentDemandSet(
                "Linux ARM32",
                new HashSet <AgentCapability>
            {
                new AgentCapability("Agent.OS", "Linux"),
                new AgentCapability("Agent.OSArchitecture", "ARM"),
                new AgentCapability("agent-osbits", "32"),
            });

            var colGroup1 = new AgentDemandSet(
                "Stress Test",
                new HashSet <AgentCapability>
            {
                new AgentCapability("run-stress", "true"),
            });

            var rowGroup2 = new AgentDemandSet(
                "Windows AMD64",
                new HashSet <AgentCapability>
            {
                new AgentCapability("Agent.OS", "Windows_NT"),
                new AgentCapability("Agent.OSArchitecture", "X64"),
                new AgentCapability("agent-os-name", "WinPro_x64"),
            });

            var colGroup2 = new AgentDemandSet(
                "Long Haul",
                new HashSet <AgentCapability>
            {
                new AgentCapability("run-long-haul", "true"),
            });

            ImmutableDictionary <AgentDemandSet, Dictionary <AgentDemandSet, HashSet <IoTEdgeAgent> > > updatedMatrix = agentMatrix.Matrix;

            foreach (AgentDemandSet row in updatedMatrix.Keys)
            {
                foreach (AgentDemandSet column in updatedMatrix[row].Keys)
                {
                    if (row.Equals(rowGroup1) && column.Equals(colGroup1))
                    {
                        Assert.AreEqual(1, updatedMatrix[row][column].Count);
                    }
                    else if (row.Equals(rowGroup2) && column.Equals(colGroup2))
                    {
                        Assert.AreEqual(1, updatedMatrix[row][column].Count);
                    }
                    else
                    {
                        Assert.AreEqual(0, updatedMatrix[row][column].Count);
                    }
                }
            }
        }
Exemple #5
0
        public void TestProperties()
        {
            // Rows
            var linuxAMD64ds = new AgentDemandSet(
                "Linux AMD64",
                new HashSet <AgentCapability>
            {
                new AgentCapability(AgentCapabilityKeys.AgentOS, "Linux"),
                new AgentCapability(AgentCapabilityKeys.AgentOSArchitecture, "X64"),
            });
            var linuxARM32ds = new AgentDemandSet(
                "Linux ARM32",
                new HashSet <AgentCapability>
            {
                new AgentCapability(AgentCapabilityKeys.AgentOS, "Linux"),
                new AgentCapability(AgentCapabilityKeys.AgentOSArchitecture, "ARM"),
                new AgentCapability(AgentCapabilityKeys.AgentOSBits, "32"),
            });
            var linuxARM64ds = new AgentDemandSet(
                "Linux ARM64",
                new HashSet <AgentCapability>
            {
                new AgentCapability(AgentCapabilityKeys.AgentOS, "Linux"),
                new AgentCapability(AgentCapabilityKeys.AgentOSArchitecture, "ARM"),
                new AgentCapability(AgentCapabilityKeys.AgentOSBits, "64"),
            });
            var windowsARM64ds = new AgentDemandSet(
                "Windows AMD64",
                new HashSet <AgentCapability>
            {
                new AgentCapability(AgentCapabilityKeys.AgentOS, "Windows_NT"),
                new AgentCapability(AgentCapabilityKeys.AgentOSArchitecture, "X64"),
                new AgentCapability(AgentCapabilityKeys.AgentOSName, "WinPro_x64"),
            });
            var windowsServerCoreAMD64ds = new AgentDemandSet(
                "Windows Server Core AMD64",
                new HashSet <AgentCapability>
            {
                new AgentCapability(AgentCapabilityKeys.AgentOS, "Windows_NT"),
                new AgentCapability(AgentCapabilityKeys.AgentOSArchitecture, "X64"),
                new AgentCapability(AgentCapabilityKeys.AgentOSName, "WinServerCore_x64"),
            });
            var windowsIoTCoreAMD64ds = new AgentDemandSet(
                "Windows IoT Core AMD64",
                new HashSet <AgentCapability>
            {
                new AgentCapability(AgentCapabilityKeys.RunnerOSName, "WinIoTCore_x64"),
            });
            var windowsIoTCoreARM32ds = new AgentDemandSet(
                "Windows IoT Core ARM32",
                new HashSet <AgentCapability>
            {
                new AgentCapability(AgentCapabilityKeys.RunnerOSName, "WinIoTCore_arm32"),
            });

            // Columns
            var longHaulds = new AgentDemandSet(
                "Long Haul",
                new HashSet <AgentCapability>
            {
                new AgentCapability("run-long-haul", "true"),
            });
            var stressTestds = new AgentDemandSet(
                "Stress Test",
                new HashSet <AgentCapability>
            {
                new AgentCapability("run-stress", "true"),
            });
            var e2eTestsds = new AgentDemandSet(
                "E2E Tests",
                new HashSet <AgentCapability>
            {
                new AgentCapability("run-e2e-tests", "true"),
            });

            var agentMatrix = new AgentMatrix();

            var rows    = agentMatrix.Rows;
            var columns = agentMatrix.Columns;

            Assert.AreEqual(7, rows.Count);
            Assert.AreEqual(3, columns.Count);

            Assert.True(linuxAMD64ds.Equals(rows[0]));
            Assert.True(linuxARM32ds.Equals(rows[1]));
            Assert.True(linuxARM64ds.Equals(rows[2]));
            Assert.True(windowsARM64ds.Equals(rows[3]));
            Assert.True(windowsServerCoreAMD64ds.Equals(rows[4]));
            Assert.True(windowsIoTCoreAMD64ds.Equals(rows[5]));
            Assert.True(windowsIoTCoreARM32ds.Equals(rows[6]));

            Assert.True(longHaulds.Equals(columns[0]));
            Assert.True(stressTestds.Equals(columns[1]));
            Assert.True(e2eTestsds.Equals(columns[2]));
        }