LuceneSearchOptionsTests.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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 DefaultLuceneSearchOptionsInitialisesCollections()
  9. {
  10. SearchOptions options = new SearchOptions();
  11. Assert.NotNull(options.OrderBy);
  12. Assert.NotNull(options.Fields);
  13. }
  14. [Fact]
  15. public void LuceneSearchOptionsCanBeConstructedWithMultipleFields()
  16. {
  17. SearchOptions options = new SearchOptions("Test", "one,two,three,four");
  18. Assert.Equal(4, options.Fields.Count);
  19. Assert.Equal("one", options.Fields[0]);
  20. Assert.Equal("two", options.Fields[1]);
  21. }
  22. [Fact]
  23. public void LuceneSearchOptionsParsesFieldsAndOrderBy()
  24. {
  25. SearchOptions options = new SearchOptions("Test", "one, two , three", 1000, null, null, "test, another test");
  26. Assert.Equal(3, options.Fields.Count);
  27. Assert.Equal("one", options.Fields[0]);
  28. Assert.Equal("two", options.Fields[1]);
  29. Assert.Equal("three", options.Fields[2]);
  30. Assert.Equal(2, options.OrderBy.Count);
  31. Assert.Equal("test", options.OrderBy[0]);
  32. Assert.Equal("anothertest", options.OrderBy[1]);
  33. }
  34. [Fact]
  35. public void GetBoostsWillReturnAValidSetOfBoostsForGivenOptions()
  36. {
  37. SearchOptions options = new SearchOptions("John Developer", "FirstName,JobTitle");
  38. Assert.Equal(2, options.Boosts.Count);
  39. Assert.Equal(1, options.Boosts["FirstName"]);
  40. Assert.Equal(1, options.Boosts["JobTitle"]);
  41. }
  42. [Fact]
  43. public void ABoostCanBeAdded()
  44. {
  45. SearchOptions options = new SearchOptions("Test", "One,Two,Three");
  46. options.SetBoost("Two", 2f);
  47. Assert.Equal(3, options.Boosts.Count);
  48. Assert.Equal(2, options.Boosts["Two"]);
  49. }
  50. [Fact]
  51. public void ClearingBoostsWillReturnDefaultValues()
  52. {
  53. Dictionary<string, float> boosts = new Dictionary<string, float>
  54. {
  55. { "One", 1.1f },
  56. { "Two", 9.1f }
  57. };
  58. SearchOptions options = new SearchOptions("Test", "One,Two", 1000, boosts);
  59. Assert.Equal(2, options.Boosts.Count);
  60. Assert.Equal(1.1f, options.Boosts["One"]);
  61. Assert.Equal(9.1f, options.Boosts["Two"]);
  62. options.ClearBoosts();
  63. Assert.Equal(2, options.Boosts.Count);
  64. Assert.Equal(1, options.Boosts["One"]);
  65. Assert.Equal(1, options.Boosts["Two"]);
  66. }
  67. }
  68. }