public void GetInputEnumValue_EmptyFlags_ShouldBeDefault()
        {
            var doc = new CustomHtmlDocument();

            doc.LoadHtml(_nodeTestHtml);

            var output = doc.GetInputEnumValue <NewMemberOptions>("empty_flags");

            output.Should().Be(default(NewMemberOptions));
        }
        public void GetInputEnumValue_WrongName_OutOfRange_Returns_Null()
        {
            var doc = new CustomHtmlDocument();

            doc.LoadHtml(_nodeTestHtml);

            var output = doc.GetInputEnumValue <DigestVolumeFrequencyOption>("xyz");

            output.Should().BeNull();
        }
        public void GetInputEnumValue_WrongValue_ArgumentException()
        {
            var doc = new CustomHtmlDocument();

            doc.LoadHtml(_nodeTestHtml);

            Action act = () => doc.GetInputEnumValue <DigestVolumeFrequencyOption>("bad_enum_prop");

            act.Should().Throw <ArgumentException>();
        }
        public void GetInputEnumValue_WrongType_ArgumentException()
        {
            var doc = new CustomHtmlDocument();

            doc.LoadHtml(_nodeTestHtml);

            Action act = () => doc.GetInputEnumValue <int>("enum_prop");

            act.Should().Throw <ArgumentException>();
        }
        public void GetInputEnumValue_Flags()
        {
            var doc = new CustomHtmlDocument();

            doc.LoadHtml(_nodeTestHtml);

            var output = doc.GetInputEnumValue <NewMemberOptions>("flags_prop");

            output.Should().HaveFlag(NewMemberOptions.Hide);
            output.Should().HaveFlag(NewMemberOptions.Ack);
        }
        public void GetInputEnumValue_ByName()
        {
            var doc = new CustomHtmlDocument();

            doc.LoadHtml(_nodeTestHtml);
            var obj = new NodeTestClass();

            var output = doc.GetInputEnumValue <DigestVolumeFrequencyOption>("enum_prop");

            output.Should().Be(obj.EnumProp);
        }
        public void GetInputEnumValue()
        {
            var doc = new CustomHtmlDocument();

            doc.LoadHtml(_nodeTestHtml);
            var obj  = new NodeTestClass();
            var prop = typeof(NodeTestClass).GetProperty("EnumProp");

            var output = doc.GetInputEnumValue(prop);

            output.Should().Be(obj.EnumProp);
        }