Exemplo n.º 1
0
        public void Tree_PrettyPrint_TwoChildren_OneHasTwoChildren_WithOneGrandChildEach()
        {
            var tree = PrtgNode.Group(Group("PRTG Network Monitor", 0),
                                      PrtgNode.Probe(Probe("Probe 1"),
                                                     PrtgNode.Group(Group(),
                                                                    PrtgNode.Device(Device())
                                                                    ),
                                                     PrtgNode.Group(Group("Linux"),
                                                                    PrtgNode.Device(Device("arch-1"))
                                                                    )
                                                     ),
                                      PrtgNode.Probe(Probe("Probe 2"))
                                      );

            var expected = new[]
            {
                "PRTG Network Monitor",
                "├──Probe 1",
                "│  ├──Servers",
                "│  │  └──dc-1",
                "│  └──Linux",
                "│     └──arch-1",
                "└──Probe 2"
            };

            Validate(tree, expected);
        }
Exemplo n.º 2
0
        public void Tree_Builds_OrdersChildPositions()
        {
            var tree = PrtgNode.Probe(Probe(),
                                      PrtgNode.TriggerCollection(
                                          PrtgNode.Trigger(Trigger("Trigger1")),
                                          PrtgNode.Trigger(Trigger("Trigger2"))
                                          ),
                                      PrtgNode.Group(Group("Servers", position: 3)),
                                      PrtgNode.Device(Device("dc-1", position: 1),
                                                      PrtgNode.Sensor(Sensor("Sensor2", position: 2)),
                                                      PrtgNode.Sensor(Sensor("Sensor1", position: 1))
                                                      ),
                                      PrtgNode.Trigger(Trigger("Trigger3")),
                                      PrtgNode.Device(Device("dc-2", position: 2))
                                      );

            TreePrettyPrintTests.Validate(tree, new[]
            {
                "Local Probe",
                "├──dc-1",
                "│  ├──Sensor1",
                "│  └──Sensor2",
                "├──dc-2",
                "├──Servers",
                "├──Trigger1",
                "├──Trigger2",
                "└──Trigger3"
            });
        }
Exemplo n.º 3
0
        public void Tree_Compare_Reduce_TreeDifference()
        {
            //We wanna make sure we're reducing on the TreeDifference, not the regular Difference.
            //If we're reducing on the regular Difference, dc-1/2 gets reduced to have no children, but
            //Servers doesn't have a difference so doesn't get replaced under Local Probe

            var first = PrtgNode.Probe(Probe("Local Probe"),
                                       PrtgNode.Group(Group("Servers"),
                                                      PrtgNode.Device(Device("dc-1", 3001),
                                                                      PrtgNode.Sensor(Sensor("Sensor1", 4001),
                                                                                      DefaultProperty
                                                                                      ),
                                                                      PrtgNode.Sensor(Sensor("Sensor2", 4002))
                                                                      )
                                                      )
                                       );

            var second = PrtgNode.Probe(Probe("Local Probe"),
                                        PrtgNode.Group(Group("Servers"),
                                                       PrtgNode.Device(Device("dc-2", 3001),
                                                                       PrtgNode.Sensor(Sensor("Sensor1", 4001),
                                                                                       DefaultProperty
                                                                                       ),
                                                                       PrtgNode.Sensor(Sensor("Sensor2", 4002))
                                                                       )
                                                       )
                                        );

            var comparison = first.CompareTo(second);
            var reduced    = comparison.Reduce();
            var list       = reduced.DescendantNodesAndSelf().ToList();

            Assert.AreEqual(3, list.Count);
        }
Exemplo n.º 4
0
        public void Tree_Compare_Reduce_GrandParentParentTwoChildren_OneChildRemoved()
        {
            var first = PrtgNode.Probe(Probe("GrandParent"),
                                       PrtgNode.Group(Group("Parent"),
                                                      PrtgNode.Device(Device("Child1", 3001)),
                                                      PrtgNode.Device(Device("Child2", 3002))
                                                      )
                                       );

            var second = PrtgNode.Probe(Probe("GrandParent"),
                                        PrtgNode.Group(Group("Parent"),
                                                       PrtgNode.Device(Device("Child1", 3001))
                                                       )
                                        );

            ValidateReduce(
                first, second,
                new[] { new Validation(TreeNodeDifference.None, c => c.Difference) },
                new[]
            {
                "GrandParent",
                "└──<Yellow>Parent</Yellow>",
                "   └──<Red>Child2</Red>"
            },
                null,
                new[]
            {
                "GrandParent",
                "└──<Yellow>Parent</Yellow>",
                "   └──<Green>Child2</Green>"
            }
                );
        }
Exemplo n.º 5
0
        public void Tree_Compare_Reduce_GrandParentTwoParentsOneChildEach_OneParentAndChildRemoved()
        {
            var first = PrtgNode.Probe(Probe("GrandParent"),
                                       PrtgNode.Group(Group("Parent1"),
                                                      PrtgNode.Device(Device("Child1"))
                                                      ),
                                       PrtgNode.Group(Group("Parent2"),
                                                      PrtgNode.Device(Device("Child2"))
                                                      )
                                       );

            var second = PrtgNode.Probe(Probe("GrandParent"),
                                        PrtgNode.Group(Group("Parent1"),
                                                       PrtgNode.Device(Device("Child1"))
                                                       )
                                        );

            ValidateReduce(
                first, second,
                new[] { new Validation(TreeNodeDifference.NumberOfChildren, c => c.Difference) },
                new[]
            {
                "<Yellow>GrandParent</Yellow>",
                "└──<Red>Parent2</Red>",
                "   └──<Red>Child2</Red>"
            },
                null,
                new[]
            {
                "<Yellow>GrandParent</Yellow>",
                "└──<Green>Parent2</Green>",
                "   └──<Green>Child2</Green>"
            }
                );
        }
Exemplo n.º 6
0
        public void Tree_Compare_SecondLastNodeRemoved_LastNodePropertyCollection()
        {
            var first = PrtgNode.Device(Device(),
                                        PrtgNode.Sensor(Sensor("First Sensor")),
                                        PrtgNode.PropertyCollection(PrtgNode.Property(3001, "name_", "test"))
                                        );

            var second = PrtgNode.Device(Device(),
                                         PrtgNode.PropertyCollection(PrtgNode.Property(3001, "name_", "test"))
                                         );

            ValidatePretty(first, second, new[]
            {
                "<Yellow>dc-1</Yellow>",
                "├──<Red>First Sensor</Red>",
                "└──Properties",
                "   └──name_"
            }, new[]
            {
                "<Yellow>dc-1</Yellow>",
                "├──Properties",
                "│  └──name_",
                "└──<Green>First Sensor</Green>",
            });
        }
Exemplo n.º 7
0
        public void Tree_Compare_SecondLastNodeRemoved_LastNodeTriggerCollection()
        {
            var first = PrtgNode.Device(Device(),
                                        PrtgNode.Sensor(Sensor("First Sensor")),
                                        PrtgNode.TriggerCollection(DefaultTrigger)
                                        );

            var second = PrtgNode.Device(Device(),
                                         PrtgNode.TriggerCollection(DefaultTrigger)
                                         );

            ValidatePretty(first, second, new[]
            {
                "<Yellow>dc-1</Yellow>",
                "├──<Red>First Sensor</Red>",
                "└──Triggers",
                "   └──Email to Admin"
            }, new[]
            {
                "<Yellow>dc-1</Yellow>",
                "├──Triggers",
                "│  └──Email to Admin",
                "└──<Green>First Sensor</Green>"
            });
        }
Exemplo n.º 8
0
        public void Tree_NodeList_Item_InBounds()
        {
            var probe = PrtgNode.Probe(Probe(),
                                       PrtgNode.Device(Device())
                                       );

            var device = probe.Children[0];

            Assert.IsNotNull(device);
        }
Exemplo n.º 9
0
        public void Tree_NodeList_ReplaceRange_NewNodes_Null_Throws()
        {
            var probe = PrtgNode.Probe(Probe(),
                                       PrtgNode.Device(Device())
                                       );

            AssertEx.Throws <ArgumentNullException>(
                () => probe.Children.ReplaceRange(probe["dc-1"], null),
                "Value cannot be null"
                );
        }
Exemplo n.º 10
0
        public void Tree_Compare_Reduce_Root_NoDifference()
        {
            var node = PrtgNode.Probe(Probe(),
                                      PrtgNode.Device(Device()),
                                      PrtgNode.Device(Device("exch-1")
                                                      ));

            var comparison = node.CompareTo(node).Reduce();

            Assert.IsNull(comparison);
        }
Exemplo n.º 11
0
        public void Tree_NodeList_ReplaceRange_OldNode_Null_Throws()
        {
            var probe = PrtgNode.Probe(Probe(),
                                       PrtgNode.Device(Device())
                                       );

            AssertEx.Throws <ArgumentNullException>(
                () => probe.Children.ReplaceRange(null, Enumerable.Empty <PrtgNode>()),
                "Value cannot be null"
                );
        }
Exemplo n.º 12
0
        public void Tree_NodeList_Remove_Null_Throws()
        {
            var probe = PrtgNode.Probe(Probe(),
                                       PrtgNode.Device(Device())
                                       );

            AssertEx.Throws <ArgumentNullException>(
                () => probe.Children.Remove(null),
                "Value cannot be null"
                );
        }
Exemplo n.º 13
0
        public void Tree_NodeList_RemoveAt()
        {
            var probe = PrtgNode.Probe(Probe(),
                                       PrtgNode.Device(Device()),
                                       PrtgNode.Group(Group())
                                       );

            var newList = probe.Children.RemoveAt(0);

            Assert.AreEqual(1, newList.Count);

            Assert.AreEqual(newList[0].Name, "Servers");
        }
Exemplo n.º 14
0
        public void Tree_NodeList_Replace()
        {
            var probe = PrtgNode.Probe(Probe(),
                                       PrtgNode.Device(Device())
                                       );

            var newChild = PrtgNode.Group(Group());

            var newList = probe.Children.Replace(probe["dc-1"], newChild);

            Assert.AreNotEqual(probe.Children, newList);
            Assert.AreEqual(1, newList.Count);
            Assert.AreEqual("Servers", newList[0].Name);
        }
Exemplo n.º 15
0
        public void Tree_NodeList_InsertRange_InvalidIndex_Throws()
        {
            var probe = PrtgNode.Probe(Probe());

            AssertEx.Throws <ArgumentOutOfRangeException>(
                () => probe.Children.InsertRange(-1, new[] { PrtgNode.Device(Device()) }),
                "Specified argument was out of the range of valid values"
                );

            AssertEx.Throws <ArgumentOutOfRangeException>(
                () => probe.Children.InsertRange(1, new[] { PrtgNode.Device(Device()) }),
                "Specified argument was out of the range of valid values"
                );
        }
Exemplo n.º 16
0
        public void Tree_NodeList_Add_NoExistingChildren()
        {
            var probe = PrtgNode.Probe(Probe());

            var newList = probe.Children.Add(PrtgNode.Device(Device()));

            Assert.AreNotEqual(probe.Children, newList);

            //The list is standalone until it's added as the child
            Assert.IsNull(newList[0].Parent);

            var newProbe = probe.WithChildren(newList);

            Assert.IsNotNull(newProbe.Children[0].Parent);
        }
Exemplo n.º 17
0
        public void Tree_Compare_ReplaceChildWithGrandChild_With_ChildWithGrandChild()
        {
            var first = PrtgNode.Probe(Probe(),
                                       PrtgNode.Group(Group()),
                                       PrtgNode.Group(Group("Windows"),
                                                      PrtgNode.Device(Device())
                                                      )
                                       );

            var second = PrtgNode.Probe(Probe(),
                                        PrtgNode.Group(Group()),
                                        PrtgNode.Group(Group("Linux", 2002),
                                                       PrtgNode.Device(Device("arch-1"))
                                                       )
                                        );

            Validate(first, second, new[]
            {
                new Validation(TreeNodeDifference.None, c => c.Difference),
                new Validation(TreeNodeDifference.Removed, c => c["Windows"].Difference),
                new Validation(TreeNodeDifference.Added, c => c["Linux"].Difference),
                new Validation(TreeNodeDifference.Added, c => c["Linux"]["arch-1"].Difference)
            }, new[]
            {
                new Validation(TreeNodeDifference.None, c => c.Difference),
                new Validation(TreeNodeDifference.Added, c => c["Windows"].Difference),
                new Validation(TreeNodeDifference.Removed, c => c["Linux"].Difference),
                new Validation(TreeNodeDifference.Removed, c => c["Linux"]["arch-1"].Difference)
            });

            ValidatePretty(first, second, new[]
            {
                "Local Probe",
                "├──Servers",
                "├──<Red>Windows</Red>",
                "│  └──<Red>dc-1</Red>",
                "└──<Green>Linux</Green>",
                "   └──<Green>arch-1</Green>"
            }, new[]
            {
                "Local Probe",
                "├──Servers",
                "├──<Red>Linux</Red>",
                "│  └──<Red>arch-1</Red>",
                "└──<Green>Windows</Green>",
                "   └──<Green>dc-1</Green>",
            });
        }
Exemplo n.º 18
0
        public void Tree_Compare_Include_None()
        {
            var first = PrtgNode.Device(Device(),
                                        PrtgNode.Sensor(Sensor("Sensor 1", 4001))
                                        );

            var second = PrtgNode.Device(Device(),
                                         PrtgNode.Sensor(Sensor("Sensor 2", 4001))
                                         );

            CompareCompared(first, second,
                            new[] { TreeNodeDifference.None },
                            new[] { TreeNodeDifference.None, TreeNodeDifference.Name },
                            new[] { TreeNodeDifference.None, TreeNodeDifference.Name }
                            );
        }
Exemplo n.º 19
0
        public void Tree_NodeList_Add_ExistingChildren()
        {
            var probe = PrtgNode.Probe(Probe(),
                                       PrtgNode.Device(Device())
                                       );

            var newList = probe.Children.Add(PrtgNode.Group(Group()));

            Assert.AreNotEqual(probe.Children, newList);

            Assert.IsTrue(newList.All(i => i.Parent == null));

            var newProbe = probe.WithChildren(newList);

            Assert.IsTrue(newProbe.Children.All(c => c != null));
        }
Exemplo n.º 20
0
        public void Tree_NodeList_Item_OutOfBounds()
        {
            var probe = PrtgNode.Probe(Probe(),
                                       PrtgNode.Device(Device())
                                       );

            AssertEx.Throws <ArgumentOutOfRangeException>(
                () => Console.WriteLine(probe.Children[-1]),
                "Specified argument was out of the range of valid values"
                );

            AssertEx.Throws <ArgumentOutOfRangeException>(
                () => Console.WriteLine(probe.Children[1]),
                "Specified argument was out of the range of valid values"
                );
        }
Exemplo n.º 21
0
        public void Tree_PrettyPrint_SingleGrandChild()
        {
            var tree = PrtgNode.Probe(Probe(),
                                      PrtgNode.Group(Group(),
                                                     PrtgNode.Device(Device())
                                                     )
                                      );

            var expected = new[]
            {
                "Local Probe",
                "└──Servers",
                "   └──dc-1"
            };

            Validate(tree, expected);
        }
Exemplo n.º 22
0
        public void Tree_Compare_Grouping_Throws()
        {
            var first  = DefaultProbe;
            var second = PrtgNode.Device(Device(),
                                         DefaultSensor,
                                         DefaultSensor
                                         );

            var grouping = second["VMware Datastore"];

            Assert.AreEqual(PrtgNodeType.Grouping, grouping.Type);

            AssertEx.Throws <ArgumentException>(
                () => first.CompareTo(grouping),
                "Cannot create a comparison containing a node of type Grouping."
                );
        }
Exemplo n.º 23
0
        public void Tree_Compare_Exclude_Single()
        {
            var first = PrtgNode.Group(Group(),
                                       PrtgNode.Device(Device("Device 1", 4001)),
                                       PrtgNode.Device(Device("Device 3", 4003))
                                       );

            var second = PrtgNode.Group(Group(),
                                        PrtgNode.Device(Device("Device 2", 4001)),
                                        PrtgNode.Device(Device("Device 3", 4003, parentId: 2))
                                        );

            CompareCompared(first, second,
                            new[] { ~TreeNodeDifference.Name },
                            new[] { TreeNodeDifference.None, TreeNodeDifference.Name, TreeNodeDifference.ParentId },
                            new[] { TreeNodeDifference.None, TreeNodeDifference.None, TreeNodeDifference.ParentId }
                            );
        }
Exemplo n.º 24
0
        public void Tree_Compare_Include_Type()
        {
            var first = PrtgNode.Group(Group(),
                                       PrtgNode.Device(Device("Device 1", 4001)),
                                       PrtgNode.Device(Device("Device 3", 4003))
                                       );

            var second = PrtgNode.Group(Group(),
                                        PrtgNode.Device(Device("Device 2", 4001)),
                                        PrtgNode.Group(Group("Device 3", 4003, parentId: 3))
                                        );

            CompareCompared(first, second,
                            new[] { TreeNodeDifference.Type },
                            new[] { TreeNodeDifference.None, TreeNodeDifference.Name, TreeNodeDifference.Type },
                            new[] { TreeNodeDifference.None, TreeNodeDifference.None, TreeNodeDifference.Type }
                            );
        }
Exemplo n.º 25
0
        public void Tree_Compare_Include_Value()
        {
            var first = PrtgNode.Group(Group(),
                                       PrtgNode.Device(Device("Device 1", 4001)),
                                       PrtgNode.Property(Property("host", "dc-1"))
                                       );

            var second = PrtgNode.Group(Group(),
                                        PrtgNode.Device(Device("Device 2", 4001)),
                                        PrtgNode.Property(Property("host", "dc-2"))
                                        );

            CompareCompared(first, second,
                            new[] { TreeNodeDifference.Value },
                            new[] { TreeNodeDifference.None, TreeNodeDifference.Name, TreeNodeDifference.Value },
                            new[] { TreeNodeDifference.None, TreeNodeDifference.None, TreeNodeDifference.Value }
                            );
        }
Exemplo n.º 26
0
        public void Tree_Compare_Include_Position()
        {
            var first = PrtgNode.Group(Group(),
                                       PrtgNode.Device(Device("Device 1", 4001)),
                                       PrtgNode.Device(Device("Device 3", 4003, position: 1))
                                       );

            var second = PrtgNode.Group(Group(),
                                        PrtgNode.Device(Device("Device 2", 4001)),
                                        PrtgNode.Device(Device("Device 3", 4003, position: 2))
                                        );

            CompareCompared(first, second,
                            new[] { TreeNodeDifference.Position },
                            new[] { TreeNodeDifference.None, TreeNodeDifference.Name, TreeNodeDifference.Position },
                            new[] { TreeNodeDifference.None, TreeNodeDifference.None, TreeNodeDifference.Position }
                            );
        }
Exemplo n.º 27
0
        public void Tree_PrettyPrint_TwoGrandChildren()
        {
            var tree = PrtgNode.Probe(Probe(),
                                      PrtgNode.Group(Group(),
                                                     PrtgNode.Device(Device()),
                                                     PrtgNode.Device(Device("dc-2", 3002))
                                                     )
                                      );

            var expected = new[]
            {
                "Local Probe",
                "└──Servers",
                "   ├──dc-1",
                "   └──dc-2"
            };

            Validate(tree, expected);
        }
Exemplo n.º 28
0
        public void Tree_NodeList_AddRange_NoExistingChildren()
        {
            var probe = PrtgNode.Probe(Probe());

            var newList = probe.Children.AddRange(new PrtgNode[]
            {
                PrtgNode.Device(Device()),
                PrtgNode.Group(Group())
            });

            Assert.AreNotEqual(probe.Children, newList);

            Assert.AreEqual(2, newList.Count);
            Assert.IsTrue(newList.All(v => v.Parent == null));

            var newProbe = probe.WithChildren(newList);

            Assert.IsTrue(newProbe.Children.All(v => v.Parent != null));
        }
Exemplo n.º 29
0
        public void Tree_PrettyPrint_Grouping()
        {
            var tree = PrtgNode.Device(Device(),
                                       PrtgNode.Sensor(Sensor(),
                                                       PrtgNode.Trigger(Trigger())
                                                       ),
                                       PrtgNode.Sensor(Sensor())
                                       );

            var grouping = tree["VMware Datastore"];

            var expected = new[]
            {
                "VMware Datastore",
                "└──Email to Admin",
                "VMware Datastore"
            };

            Validate(grouping, expected);
        }
Exemplo n.º 30
0
        public void Tree_PrettyPrint_NodeAndTwoTriggers()
        {
            var tree = PrtgNode.Group(Group(),
                                      PrtgNode.Device(Device()),
                                      PrtgNode.TriggerCollection(
                                          PrtgNode.Trigger(Trigger()),
                                          PrtgNode.Trigger(Trigger("Ticket Notification"))
                                          )
                                      );

            var expected = new[]
            {
                "Servers",
                "├──dc-1",
                "├──Email to Admin",
                "└──Ticket Notification",
            };

            Validate(tree, expected);
        }