public void BuildQueryParametres_AnonymType_ReturnsValidQuery()
        {
            var builder  = new ArraySpecificQueryBuilder();
            var expected = "?Id=321&Name=Roman";

            var query = builder.BuildQuery(new { Id = 321, Name = "Roman" });

            Assert.AreEqual(expected, query);
        }
        public void BuildQueryParametres_WithArrayValidModel_ReturnsValidQuery()
        {
            var builder  = new ArraySpecificQueryBuilder();
            var expected = "/api?user=Roman&user=Richard&user=Some%20One%20Else";

            var query = builder.BuildQuery(new ArrayTestModel()
            {
                Users = new string[] { "Roman", "Richard", "Some One Else" }
            });

            Assert.AreEqual(expected, query);
        }
        public void BuildQueryParametres_WithComplexValidModel_ReturnsValidQuery()
        {
            var builder  = new ArraySpecificQueryBuilder();
            var expected = "/api/somevalue/qwerty/others?user=Roman&Age=321";

            var query = builder.BuildQuery(new ComplexTestModel()
            {
                User = "******", Id = "qwerty", Age = 321, ProperyInside = "somevalue"
            });

            Assert.AreEqual(expected, query);
        }
        public void BuildQueryParametres_ModelWithParts_ReturnsValidQuery()
        {
            var builder  = new ArraySpecificQueryBuilder();
            var expected = "/api/complex/Roman";

            var query = builder.BuildQuery(new ModelWithQueryParts()
            {
                SomeProperty = "Roman"
            });

            Assert.AreEqual(expected, query);
        }
        public void BuildQueryParametres_IgnoreParametresWithIgnoreAttribute_ReturnsValidQuery()
        {
            var builder  = new ArraySpecificQueryBuilder();
            var expected = "?Id=321";

            var query = builder.BuildQuery(new SimpleTestModelWithIgnore()
            {
                Id = 321, Name = "Roman"
            });

            Assert.AreEqual(expected, query);
        }
        public void BuildQueryParametres_WithSimpleValidModel_ReturnsValidQuery()
        {
            var builder  = new ArraySpecificQueryBuilder();
            var expected = "?Id=321&Name=Roman";

            var query = builder.BuildQuery(new SimpleTestModel()
            {
                Id = 321, Name = "Roman"
            });

            Assert.AreEqual(expected, query);
        }