public void ReturnsNullForNull(Tob tob)
            {
                tob.SetPropertiesFromTmc(Properties1);

                var result = tob.GetPropertyOrDefault(null);

                result.Should().BeNull();
            }
            public void ReturnsNullForNotDefinedKey(Tob tob)
            {
                tob.SetPropertiesFromTmc(Properties1);

                var result = tob.GetPropertyOrDefault("not-defined");

                result.Should().BeNull();
            }
            public void ReturnsCorrectValues(string[]        properties,
                                             TmTopologyState expected,
                                             Tob tob)
            {
                tob.SetPropertiesFromTmc(properties);

                var result = tob.TopologyState;

                result.Should().Be(expected);
            }
            public void DoesNothingAndReturnsFalseForNull(Tob tob)
            {
                using (var monitor = tob.Monitor())
                {
                    var result = tob.SetPropertiesFromTmc(null);

                    result.Should().BeFalse();
                    tob.IsInit.Should().BeFalse();
                    monitor.Should().NotRaise(nameof(tob.PropertyChanged));
                }
            }
            public void ReturnsCorrectValues(Tob tob)
            {
                tob.SetPropertiesFromTmc(Properties1);

                var resultV    = tob.GetPropertyOrDefault(Tob.PropertyIsVoltaged);
                var resultG    = tob.GetPropertyOrDefault(Tob.PropertyIsGrounded);
                var resultName = tob.GetPropertyOrDefault(Tob.PropertyName);

                resultV.Should().Be("1");
                resultG.Should().Be("1");
                resultName.Should().Be("Test1");
            }
            public void DoesNothingAndReturnsFalseForEqualProperties(Tob tob)
            {
                tob.SetPropertiesFromTmc(Properties1);

                using (var monitor = tob.Monitor())
                {
                    var result = tob.SetPropertiesFromTmc(Properties2);

                    result.Should().BeFalse();
                    monitor.Should().NotRaise(nameof(tob.PropertyChanged));
                }
            }
            public void SetsCorrectProperties(Tob tob)
            {
                using (var monitor = tob.Monitor())
                {
                    var result = tob.SetPropertiesFromTmc(Properties1);

                    result.Should().BeTrue();
                    tob.IsInit.Should().BeTrue();
                    tob.Properties.Should().HaveCount(4);
                    monitor.Should().Raise(nameof(tob.PropertyChanged));
                }
            }
            public void ReturnsUnknownForNonInit(Tob tob)
            {
                var result = tob.TopologyState;

                result.Should().Be(TmTopologyState.Unknown);
            }