Пример #1
0
        public async Task CanCoerceData()
        {
            var options = new StatelessClientOptions(baseUrl);

            var stringValue   = "test";
            var intValue      = 1;
            var floatValue    = 1.1f;
            var doubleValue   = 1.1d;
            var dateTimeValue = DateTime.UtcNow;
            var listOfStrings = new List <string> {
                "test", "1", "2", "3"
            };
            var listOfDateTime = new List <DateTime> {
                new DateTime(2021, 12, 10), new DateTime(2021, 12, 11), new DateTime(2021, 12, 12)
            };
            var listOfInts = new List <int> {
                1, 2, 3
            };
            var listOfFloats = new List <float> {
                1.1f, 1.2f, 1.3f
            };
            var intRange = new IntRange(0, 1);


            var model = new KitchenSink
            {
                StringValue     = stringValue,
                IntValue        = intValue,
                FloatValue      = floatValue,
                DoubleValue     = doubleValue,
                DateTimeValue   = dateTimeValue,
                ListOfStrings   = listOfStrings,
                ListOfDateTimes = listOfDateTime,
                ListOfInts      = listOfInts,
                ListOfFloats    = listOfFloats,
                IntRange        = intRange
            };


            var insertedModel = await StatelessClient.Table <KitchenSink>(options).Insert(model);

            var actual = insertedModel.Models.First();

            Assert.AreEqual(model.StringValue, actual.StringValue);
            Assert.AreEqual(model.IntValue, actual.IntValue);
            Assert.AreEqual(model.FloatValue, actual.FloatValue);
            Assert.AreEqual(model.DoubleValue, actual.DoubleValue);
            Assert.AreEqual(model.DateTimeValue.ToString(), actual.DateTimeValue.ToString());
            CollectionAssert.AreEquivalent(model.ListOfStrings, actual.ListOfStrings);
            CollectionAssert.AreEquivalent(model.ListOfDateTimes, actual.ListOfDateTimes);
            CollectionAssert.AreEquivalent(model.ListOfInts, actual.ListOfInts);
            CollectionAssert.AreEquivalent(model.ListOfFloats, actual.ListOfFloats);
            Assert.AreEqual(model.IntRange.Start, actual.IntRange.Start);
            Assert.AreEqual(model.IntRange.End, actual.IntRange.End);
        }
        public void TestQueryApiKey()
        {
            var options = new StatelessClientOptions(baseUrl)
            {
                Headers =
                {
                    { "apikey", "some-key" }
                }
            };

            Assert.AreEqual($"{baseUrl}/users?apikey=some-key", StatelessClient.Table <User>(options).GenerateUrl());
        }
        public void TestQueryParams()
        {
            var options = new StatelessClientOptions(baseUrl)
            {
                QueryParams = new Dictionary <string, string>
                {
                    { "some-param", "foo" },
                    { "other-param", "bar" }
                }
            };

            Assert.AreEqual($"{baseUrl}/users?some-param=foo&other-param=bar", StatelessClient.Table <User>(options).GenerateUrl());
        }
        public async Task TestSwitchSchema()
        {
            //Arrange
            var options = new StatelessClientOptions(baseUrl)
            {
                Schema = "personal"
            };

            //Act
            var response = await StatelessClient.Table <User>(options).Filter("username", Operator.Equals, "leroyjenkins").Get();

            //Assert
            Assert.AreEqual(1, response.Models.Count);
            Assert.AreEqual("leroyjenkins", response.Models.FirstOrDefault()?.Username);
        }
        public async Task TestStoredProcedure()
        {
            //Arrange
            var options = new StatelessClientOptions(baseUrl);

            //Act
            var parameters = new Dictionary <string, object>()
            {
                { "name_param", "supabot" }
            };
            var response = await StatelessClient.Rpc("get_status", parameters, options);

            //Assert
            Assert.AreEqual(true, response.ResponseMessage.IsSuccessStatusCode);
            Assert.AreEqual(true, response.Content.Contains("OFFLINE"));
        }
        public void TestTableAttributeDefault()
        {
            var options = new StatelessClientOptions(baseUrl);

            Assert.AreEqual($"{baseUrl}/Stub", StatelessClient.Table <Stub>(options).GenerateUrl());
        }
        public void TestTableAttribute()
        {
            var options = new StatelessClientOptions(baseUrl);

            Assert.AreEqual($"{baseUrl}/users", StatelessClient.Table <User>(options).GenerateUrl());
        }