public void Should_return_instance_with_set_property()
            {
                var sut = new MethodDescriptorContainer <string>();

                var @return = sut.SetType("test");

                Assert.Equal("test", @return.Type);
            }
            public void Should_return_required_as_null_by_default()
            {
                var sut = new MethodDescriptorContainer <TestParameter>();

                var @return   = sut.Parameter(x => x.Eyes.Color, "description", "type");
                var parameter = @return.Parameters.FirstOrDefault();

                Assert.Null(parameter.Required);
            }
            public void Should_return_required_as_false_when_set()
            {
                var sut = new MethodDescriptorContainer <TestParameter>();

                var @return   = sut.Parameter(x => x.Eyes.Color, "description", "type", false);
                var parameter = @return.Parameters.FirstOrDefault();

                Assert.NotNull(parameter.Required);
                Assert.False(parameter.Required.Value);
            }
            public void Should_be_able_to_set_required_via_method()
            {
                var sut = new MethodDescriptorContainer <TestParameter>();

                var parameter = sut
                                .Parameter(x => x.Eyes.Color, "description", "type")
                                .SetRequired(true);

                Assert.NotNull(parameter.Required);
                Assert.True(parameter.Required.Value);
            }
            public void Should_add_parameter_data_to_list()
            {
                var sut = new MethodDescriptorContainer <TestParameter>();

                sut.Parameter(x => x.FirstName, "description", "type");

                var parameter = sut.Parameters.FirstOrDefault();

                Assert.NotNull(parameter);
                Assert.Equal("FirstName", parameter.Name);
                Assert.Equal("description", parameter.Description);
                Assert.Equal("type", parameter.Type);
            }
            public void Should_return_nested_instance_with_set_parameter()
            {
                var sut = new MethodDescriptorContainer <TestParameter>();

                var @return = sut.Parameter(x => x.Eyes.Color, "description", "type");

                Assert.NotNull(@return);

                var parameter = @return.Parameters.FirstOrDefault();

                Assert.NotNull(parameter);
                Assert.Equal("Eyes.Color", parameter.Name);
                Assert.Equal("description", parameter.Description);
                Assert.Equal("type", parameter.Type);
            }