LuceneSearchOptionsTests.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using System.Collections.Generic;
  2. using Xunit;
  3. namespace Masuit.LuceneEFCore.SearchEngine.Test
  4. {
  5. public class LuceneSearchOptionsTests
  6. {
  7. [Fact]
  8. public void LuceneSearchOptionsCanBeConstructedWithMultipleFields()
  9. {
  10. SearchOptions options = new SearchOptions("Test", "one,two,three,four");
  11. Assert.Equal(4, options.Fields.Count);
  12. Assert.Equal("one", options.Fields[0]);
  13. Assert.Equal("two", options.Fields[1]);
  14. }
  15. [Fact]
  16. public void LuceneSearchOptionsParsesFieldsAndOrderBy()
  17. {
  18. SearchOptions options = new SearchOptions("Test", "one, two , three", 1000, null, null, "test, another test");
  19. Assert.Equal(3, options.Fields.Count);
  20. Assert.Equal("one", options.Fields[0]);
  21. Assert.Equal("two", options.Fields[1]);
  22. Assert.Equal("three", options.Fields[2]);
  23. Assert.Equal(2, options.OrderBy.Count);
  24. Assert.Equal("test", options.OrderBy[0]);
  25. Assert.Equal("anothertest", options.OrderBy[1]);
  26. }
  27. [Fact]
  28. public void GetBoostsWillReturnAValidSetOfBoostsForGivenOptions()
  29. {
  30. SearchOptions options = new SearchOptions("John Developer", "FirstName,JobTitle");
  31. Assert.Equal(2, options.Boosts.Count);
  32. Assert.Equal(1, options.Boosts["FirstName"]);
  33. Assert.Equal(1, options.Boosts["JobTitle"]);
  34. }
  35. [Fact]
  36. public void ABoostCanBeAdded()
  37. {
  38. SearchOptions options = new SearchOptions("Test", "One,Two,Three");
  39. options.SetBoost("Two", 2f);
  40. Assert.Equal(3, options.Boosts.Count);
  41. Assert.Equal(2, options.Boosts["Two"]);
  42. }
  43. [Fact]
  44. public void ClearingBoostsWillReturnDefaultValues()
  45. {
  46. Dictionary<string, float> boosts = new Dictionary<string, float>
  47. {
  48. { "One", 1.1f },
  49. { "Two", 9.1f }
  50. };
  51. SearchOptions options = new SearchOptions("Test", "One,Two", 1000, boosts);
  52. Assert.Equal(2, options.Boosts.Count);
  53. Assert.Equal(1.1f, options.Boosts["One"]);
  54. Assert.Equal(9.1f, options.Boosts["Two"]);
  55. options.ClearBoosts();
  56. Assert.Equal(2, options.Boosts.Count);
  57. Assert.Equal(1, options.Boosts["One"]);
  58. Assert.Equal(1, options.Boosts["Two"]);
  59. }
  60. }
  61. }