Skip to content

Commit

Permalink
test dialect 5
Browse files Browse the repository at this point in the history
  • Loading branch information
atakavci committed Jun 11, 2024
1 parent 5689e5f commit f940d6d
Showing 1 changed file with 137 additions and 0 deletions.
137 changes: 137 additions & 0 deletions tests/NRedisStack.Tests/Search/SearchTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3049,4 +3049,141 @@ public void Issue230()
Assert.Equal("FT.AGGREGATE", buildCommand.Command);
Assert.Equal(new object[] { "idx:users", "*", "FILTER", "@StatusId==1", "GROUPBY", 1, "@CreatedDay", "REDUCE", "COUNT_DISTINCT", 1, "@UserId", "REDUCE", "COUNT", 0, "AS", "count", "DIALECT", 3 }, buildCommand.Args);
}

[SkipIfRedis(Comparison.LessThan, "7.4.0")]
public void TestTagInDialect5()
{
IDatabase db = redisFixture.Redis.GetDatabase();
db.Execute("FLUSHALL");
var ft = db.FT();

Schema sc = new Schema()
.AddTextField("title", 1.0)
.AddTagField("category");

Assert.True(ft.Create(index, FTCreateParams.CreateParams(), sc));
Dictionary<string, object> fields4 = new Dictionary<string, object>
{
{ "title", "hello world" },
{ "category", "orange;purple-" }
};
AddDocument(db, "qux", fields4);

Assert.Equal(1, ft.Search(index, new Query("@category:{orange\\;purple\\-}")).TotalResults);
Assert.Equal(1, ft.Search(index, new Query("@category:{orange;purple-}").Dialect(5)).TotalResults);
}

[SkipIfRedis(Comparison.LessThan, "7.4.0")]
public void TestLogicalOperatorsInDialect5()
{
IDatabase db = redisFixture.Redis.GetDatabase();
db.Execute("FLUSHALL");
var ft = db.FT();

Schema sc = new Schema()
.AddTextField("title", 1.0)
.AddTagField("category")
.AddTagField("author");

Assert.True(ft.Create(index, FTCreateParams.CreateParams(), sc));
Dictionary<string, object> fields4 = new Dictionary<string, object>
{
{ "title", "hello world" },
{ "category", "orange;purple-" },
{"author", "Newman~"}

};
AddDocument(db, "qux", fields4);
Assert.Equal(1, ft.Search(index, new Query("@category:{orange\\;purple\\- | blue\\;purple\\-}")).TotalResults);
Assert.Equal(1, ft.Search(index, new Query("@category:{orange;purple-} | @category:{blue;purple-}").Dialect(5)).TotalResults);

Assert.Equal(1, ft.Search(index, new Query("@category:{orange\\;purple\\-} @author:{Newman\\~}")).TotalResults);
Assert.Equal(1, ft.Search(index, new Query("@category:{orange;purple-} @author:{Newman~}").Dialect(5)).TotalResults);
}

[SkipIfRedis(Comparison.LessThan, "7.4.0")]
public void TestNumericInDialect5()
{
IDatabase db = redisFixture.Redis.GetDatabase();
db.Execute("FLUSHALL");
var ft = db.FT();

Schema sc = new Schema()
.AddTextField("title", 1.0)
.AddNumericField("version");

Assert.True(ft.Create(index, FTCreateParams.CreateParams(), sc));
Dictionary<string, object> fields4 = new Dictionary<string, object>
{
{ "title", "hello world" },
{ "version", 123 }
};
AddDocument(db, "qux", fields4);

Assert.Equal(1, ft.Search(index, new Query("@version:[123 123]")).TotalResults);
Assert.Equal(1, ft.Search(index, new Query("@version:[123]").Dialect(5)).TotalResults);
}

[SkipIfRedis(Comparison.LessThan, "7.4.0")]
public void TestNumericOperatorsInDialect5()
{
IDatabase db = redisFixture.Redis.GetDatabase();
db.Execute("FLUSHALL");
var ft = db.FT();

Schema sc = new Schema()
.AddTextField("title", 1.0)
.AddNumericField("version");

Assert.True(ft.Create(index, FTCreateParams.CreateParams(), sc));
Dictionary<string, object> fields4 = new Dictionary<string, object>
{
{ "title", "hello world" },
{ "version", 123 }
};
AddDocument(db, "qux", fields4);

Assert.Equal(1, ft.Search(index, new Query("@version:[123 123]")).TotalResults);
Assert.Equal(1, ft.Search(index, new Query("@version==123").Dialect(5)).TotalResults);

Assert.Equal(1, ft.Search(index, new Query("@version:[122 +inf]")).TotalResults);
Assert.Equal(1, ft.Search(index, new Query("@version>=122").Dialect(5)).TotalResults);

Assert.Equal(1, ft.Search(index, new Query("@version:[-inf 124]")).TotalResults);
Assert.Equal(1, ft.Search(index, new Query("@version<=124").Dialect(5)).TotalResults);

}

[SkipIfRedis(Comparison.LessThan, "7.4.0")]
public void TestNumericLogicalOperatorsInDialect5()
{
IDatabase db = redisFixture.Redis.GetDatabase();
db.Execute("FLUSHALL");
var ft = db.FT();

Schema sc = new Schema()
.AddTextField("title", 1.0)
.AddNumericField("version")
.AddNumericField("id");

Assert.True(ft.Create(index, FTCreateParams.CreateParams(), sc));
Dictionary<string, object> fields4 = new Dictionary<string, object>
{
{ "title", "hello world" },
{ "version", 123 },
{ "id", 456 }
};
AddDocument(db, "qux", fields4);

Assert.Equal(1, ft.Search(index, new Query("@version<=124").Dialect(5)).TotalResults);

Assert.Equal(1, ft.Search(index, new Query("@version:[123 123]")).TotalResults);
Assert.Equal(1, ft.Search(index, new Query("@version:[123] | @version:[124]").Dialect(5)).TotalResults);

Assert.Equal(1, ft.Search(index, new Query("@version:[123 123] | @version:[7890 7890]")).TotalResults);
Assert.Equal(1, ft.Search(index, new Query("@version==123 | @version==7890").Dialect(5)).TotalResults);

Assert.Equal(1, ft.Search(index, new Query("@version:[123 123] | @id:[456 7890]")).TotalResults);
Assert.Equal(1, ft.Search(index, new Query("@version==123 @id==456").Dialect(5)).TotalResults);
}
}

0 comments on commit f940d6d

Please sign in to comment.