public void FlagShouldHaveCorrectRequiredValue(bool value)
        {
            // Arrange
            var sut = new OptionSchemaFactory();

            // Act
            var option = sut.Flag("name", "description", false, value);

            // Assert
            Assert.Equal(value, option.Required);
        }
        public void SchemaShouldNotBeNull()
        {
            // Arrange
            var sut = new OptionSchemaFactory();

            // Act
            var actual = sut.Schema();

            // Assert
            Assert.NotNull(actual);
        }
        public void SetShouldHaveCorrectRequiredValue(bool value)
        {
            // Arrange
            var sut = new OptionSchemaFactory();

            // Act
            var option = sut.Set("name", "description", Enumerable.Empty <ISetItem>(), null, value);

            // Assert
            Assert.Equal(value, option.Required);
        }
        public void NumberShouldThrowWhenMinimumIsBiggerThanMaximum()
        {
            // Arrange
            var sut = new OptionSchemaFactory();

            // Act
            var ex = Record.Exception(() => sut.Number("name", "desc", 2, 1));

            // Assert
            Assert.IsType <ArgumentException>(ex);
        }
        public void NumberShouldHaveCorrectRequiredValue(bool value)
        {
            // Arrange
            var sut = new OptionSchemaFactory();

            // Act
            var option = sut.Number("name", "description", null, null, 0, value);

            // Assert
            Assert.Equal(value, option.Required);
        }
        public void FlagShouldHaveCorrectDefaultValue(bool value)
        {
            // Arrange
            var sut = new OptionSchemaFactory();

            // Act
            var option = sut.Flag("id", "name", "description", value);

            // Assert
            Assert.Equal(value, option.DefaultValue);
        }
        public void NumberShouldHaveCorrectDescription()
        {
            // Arrange
            var          sut      = new OptionSchemaFactory();
            const string expected = "expected";

            // Act
            var option = sut.Number("name", expected);

            // Assert
            Assert.Equal(expected, option.Description);
        }
        public void NumberShouldHaveCorrectDefaultValue()
        {
            // Arrange
            var       sut      = new OptionSchemaFactory();
            const int expected = 123;

            // Act
            var option = sut.Number("name", "description", null, null, expected);

            // Assert
            Assert.Equal(expected, option.DefaultValue);
        }
        public void GroupShouldContainCorrectTitle()
        {
            // Arrange
            var          sut      = new OptionSchemaFactory();
            const string expected = "title";

            // Act
            var group = sut.Group(expected);

            // Assert
            Assert.Equal(expected, group.Title);
        }
        public void FlagShouldHaveCorrectName()
        {
            // Arrange
            var          sut      = new OptionSchemaFactory();
            const string expected = "expected";

            // Act
            var option = sut.Flag(expected, null);

            // Assert
            Assert.Equal(expected, option.Name);
        }
        public void TextShouldHaveCorrectDefaultValue()
        {
            // Arrange
            var          sut      = new OptionSchemaFactory();
            const string expected = "expected";

            // Act
            var option = sut.Text("name", "description", expected);

            // Assert
            Assert.Equal(expected, option.DefaultValue);
        }
        public void SetShouldHaveCorrectName()
        {
            // Arrange
            var          sut      = new OptionSchemaFactory();
            const string expected = "expected";

            // Act
            var option = sut.Set(expected, null, Enumerable.Empty <ISetItem>());

            // Assert
            Assert.Equal(expected, option.Name);
        }
        public void SetItemShouldHaveCorrectValue()
        {
            // Arrange
            var       sut      = new OptionSchemaFactory();
            const int expected = 123;

            // Act
            var option = sut.SetItem("name", "desc", expected);

            // Assert
            Assert.Equal(expected, option.Value);
        }
        public void SetShouldHaveCorrectDescription()
        {
            // Arrange
            var          sut      = new OptionSchemaFactory();
            const string expected = "expected";

            // Act
            var option = sut.Set("id", "name", expected, Enumerable.Empty <ISetItem>());

            // Assert
            Assert.Equal(expected, option.Description);
        }
        public void NumberShouldHaveCorrectMinimum()
        {
            // Arrange
            var       sut      = new OptionSchemaFactory();
            const int expected = 123;

            // Act
            var option = sut.Number("id", "name", "description", expected);

            // Assert
            Assert.Equal(expected, option.MinValue);
        }