Example #1
0
        public void locator_for_string(Casing casing)
        {
            var memberName = casing == Casing.Default ? "FirstName" : "firstName";

            JsonLocatorField.For <User>(EnumStorage.AsInteger, casing, x => x.FirstName)
            .SqlLocator.ShouldBe($"d.data ->> '{memberName}'");
        }
        public void locator_for_enum_in_string_mode(Casing casing)
        {
            var memberName = casing == Casing.Default ? "Color" : "color";

            JsonLocatorField.For <Target>(EnumStorage.AsString, casing, x => x.Color)
            .SqlLocator.ShouldBe($"d.data ->> '{memberName}'");
        }
        public void locator_for_number(Casing casing)
        {
            var memberName = casing == Casing.Default ? "Age" : "age";

            JsonLocatorField.For <User>(EnumStorage.AsInteger, casing, x => x.Age)
            .SqlLocator.ShouldBe($"CAST(d.data ->> '{memberName}' as integer)");
        }
Example #4
0
        public void make_datetime_fields_be_containment()
        {
            JsonLocatorField.For <Target>(EnumStorage.AsInteger, x => x.Date)
            .ShouldUseContainmentOperator().ShouldBeTrue();

            JsonLocatorField.For <Target>(EnumStorage.AsInteger, x => x.DateOffset)
            .ShouldUseContainmentOperator().ShouldBeTrue();
        }
Example #5
0
        public void do_not_use_timestamp_functions_on_selection_locator_for_dates()
        {
            JsonLocatorField.For <DocWithDates>(EnumStorage.AsString, x => x.DateTime)
            .SelectionLocator.ShouldBe("CAST(d.data ->> 'DateTime' as timestamp without time zone)");

            JsonLocatorField.For <DocWithDates>(EnumStorage.AsString, x => x.NullableDateTime)
            .SelectionLocator.ShouldBe("CAST(d.data ->> 'NullableDateTime' as timestamp without time zone)");

            JsonLocatorField.For <DocWithDates>(EnumStorage.AsString, x => x.DateTimeOffset)
            .SelectionLocator.ShouldBe("CAST(d.data ->> 'DateTimeOffset' as timestamp with time zone)");

            JsonLocatorField.For <DocWithDates>(EnumStorage.AsString, x => x.NullableDateTimeOffset)
            .SelectionLocator.ShouldBe("CAST(d.data ->> 'NullableDateTimeOffset' as timestamp with time zone)");
        }
Example #6
0
        public void do_not_use_timestamp_functions_on_selection_locator_for_dates(Casing casing, string dateTimeName, string nullableDateTimeName, string dateTimeOffsetName, string nullableDateTimeOffsetName)
        {
            JsonLocatorField.For <DocWithDates>(EnumStorage.AsString, casing, x => x.DateTime)
            .SelectionLocator.ShouldBe($"CAST(d.data ->> '{dateTimeName}' as timestamp without time zone)");

            JsonLocatorField.For <DocWithDates>(EnumStorage.AsString, casing, x => x.NullableDateTime)
            .SelectionLocator.ShouldBe($"CAST(d.data ->> '{nullableDateTimeName}' as timestamp without time zone)");

            JsonLocatorField.For <DocWithDates>(EnumStorage.AsString, casing, x => x.DateTimeOffset)
            .SelectionLocator.ShouldBe($"CAST(d.data ->> '{dateTimeOffsetName}' as timestamp with time zone)");

            JsonLocatorField.For <DocWithDates>(EnumStorage.AsString, casing, x => x.NullableDateTimeOffset)
            .SelectionLocator.ShouldBe($"CAST(d.data ->> '{nullableDateTimeOffsetName}' as timestamp with time zone)");
        }
        public void do_not_use_timestamp_functions_on_selection_locator_for_dates(Casing casing)
        {
            var name = casing == Casing.Default ? "DateTime" : "dateTime";

            JsonLocatorField.For <DocWithDates>(EnumStorage.AsString, casing, x => x.DateTime)
            .SelectionLocator.ShouldBe($"CAST(d.data ->> '{name}' as timestamp without time zone)");

            name = casing == Casing.Default ? "NullableDateTime" : "nullableDateTime";
            JsonLocatorField.For <DocWithDates>(EnumStorage.AsString, casing, x => x.NullableDateTime)
            .SelectionLocator.ShouldBe($"CAST(d.data ->> '{name}' as timestamp without time zone)");

            name = casing == Casing.Default ? "DateTimeOffset" : "dateTimeOffset";
            JsonLocatorField.For <DocWithDates>(EnumStorage.AsString, casing, x => x.DateTimeOffset)
            .SelectionLocator.ShouldBe($"CAST(d.data ->> '{name}' as timestamp with time zone)");

            name = casing == Casing.Default ? "NullableDateTimeOffset" : "nullableDateTimeOffset";
            JsonLocatorField.For <DocWithDates>(EnumStorage.AsString, casing, x => x.NullableDateTimeOffset)
            .SelectionLocator.ShouldBe($"CAST(d.data ->> '{name}' as timestamp with time zone)");
        }
Example #8
0
        public void UnknownPGTypesMapToJsonb()
        {
            var locator = JsonLocatorField.For <UserNested>(EnumStorage.AsInteger, Casing.Default, x => x.Nested);

            Assert.Equal("CAST(d.data ->> 'Nested' as jsonb)", locator.SqlLocator);
        }
Example #9
0
        public void locator_for_enum_in_string_mode()
        {
            var field = JsonLocatorField.For <Target>(EnumStorage.AsString, x => x.Color);

            field.SqlLocator.ShouldBe("d.data ->> 'Color'");
        }
Example #10
0
 public void locator_for_enum_in_string_mode(Casing casing, string memberName)
 {
     JsonLocatorField.For <Target>(EnumStorage.AsString, casing, x => x.Color)
     .SqlLocator.ShouldBe($"d.data ->> '{memberName}'");
 }
Example #11
0
 public void locator_for_enum_in_integer_mode(Casing casing, string memberName)
 {
     JsonLocatorField.For <Target>(EnumStorage.AsInteger, casing, x => x.Color)
     .SqlLocator.ShouldBe($"CAST(d.data ->> '{memberName}' as integer)");
 }
Example #12
0
 public void locator_for_number(Casing casing, string memberName)
 {
     JsonLocatorField.For <User>(EnumStorage.AsInteger, casing, x => x.Age)
     .SqlLocator.ShouldBe($"CAST(d.data ->> '{memberName}' as integer)");
 }