예제 #1
0
        public async Task Should_be_Able_To_Get_Version_By_default_Client()
        {
            var client             = new MeilisearchClient("http://localhost:7700", "masterKey");
            var meilisearchversion = await client.GetVersion();

            meilisearchversion.Version.Should().NotBeNullOrEmpty();
        }
예제 #2
0
        public async void SetUp(MeilisearchClient client, string indexUid)
        {
            this.BasicIndexWithDocuments = client.GetOrCreateIndex(indexUid).Result;
            var movies = new[]
            {
                new Movie {
                    Id = "10", Name = "Gladiator"
                },
                new Movie {
                    Id = "11", Name = "Interstellar"
                },
                new Movie {
                    Id = "12", Name = "Star Wars", Genre = "SF"
                },
                new Movie {
                    Id = "13", Name = "Harry Potter", Genre = "SF"
                },
                new Movie {
                    Id = "14", Name = "Iron Man", Genre = "Action"
                },
                new Movie {
                    Id = "15", Name = "Spider-Man", Genre = "Action"
                },
                new Movie {
                    Id = "16", Name = "Amélie Poulain", Genre = "French movie"
                },
            };

            await this.BasicIndexWithDocuments.AddDocuments(movies);
        }
예제 #3
0
 private void SetUpForDelete()
 {
     try
     {
         var client = new MeilisearchClient(_httpClient);
         var index  = client.GetIndex("MoviesToDelete").Result;
         if (index == null)
         {
             this.DocumentDeleteIndex = client.CreateIndex("MoviesToDelete").Result;
         }
         else
         {
             this.DocumentDeleteIndex = index;
         }
         var movies = new[]
         {
             new Movie {
                 Id = "10", Name = "SuperMan"
             },
         };
         var updateStatus = this.DocumentDeleteIndex.AddorUpdateDocuments(movies).Result;
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
     }
 }
예제 #4
0
        public async Task Should_be_Able_To_Get_Version()
        {
            var _httpClient        = ClientFactory.Instance.CreateClient <MeilisearchClient>();
            var client             = new MeilisearchClient(_httpClient);
            var meilisearchversion = await client.GetVersion();

            meilisearchversion.Version.Should().NotBeNullOrEmpty();
        }
 public MeilisearchService(IConfiguration config)
 {
     _config        = config;
     _client        = new MeilisearchClient(_config["Meilisearch:URL"], _config["Meilisearch:Masterkey"]);
     _episodeIndex  = _client.Index("episodes");
     _topicIndex    = _client.Index("topics");
     _subtopicIndex = _client.Index("subtopics");
 }
예제 #6
0
        public async Task GetVersionWithCustomClient()
        {
            var httpClient         = ClientFactory.Instance.CreateClient <MeilisearchClient>();
            var client             = new MeilisearchClient(httpClient);
            var meilisearchversion = await client.GetVersion();

            meilisearchversion.Version.Should().NotBeNullOrEmpty();
        }
예제 #7
0
        public async Task Should_return_Null_If_the_Index_Does_not_Exist()
        {
            var _httpClient = ClientFactory.Instance.CreateClient <MeilisearchClient>();
            var client      = new MeilisearchClient(_httpClient);
            var indexes     = await client.GetIndex("somerandomIndex");

            indexes.Should().BeNull();
        }
예제 #8
0
        public DocumentFixture()
        {
            var client = new MeilisearchClient("http://localhost:7700", "masterKey");

            this.SetUp(client, "Movies");
            this.SetUpForDocumentsDeletion(client, "MoviesToDelete");
            this.SetUpForFaceting(client, "MoviesForFaceting");
        }
예제 #9
0
        public async Task Should_Throw_an_Exception_if_the_Index_Is_already_Taken()
        {
            var httpclient = ClientFactory.Instance.CreateClient <MeilisearchClient>();
            var client     = new MeilisearchClient(httpclient);
            var indexName  = "uid3" + new Random().Next();
            var index      = await client.CreateIndex(indexName, "movieId");

            await Assert.ThrowsAsync <Exception>(() => client.CreateIndex(indexName, "movieId"));
        }
예제 #10
0
        public async Task Should_be_able_To_Create_Index()
        {
            var _httpClient = ClientFactory.Instance.CreateClient <MeilisearchClient>();
            var client      = new MeilisearchClient(_httpClient);
            var indexName   = "uid" + new Random().Next();
            var index       = await client.CreateIndex(indexName);

            index.Uid.Should().Be(indexName);
        }
예제 #11
0
        private async void SetUpForDocumentsDeletion(MeilisearchClient client, string indexUid)
        {
            this.IndexForDocumentsDeletion = client.GetOrCreateIndex(indexUid).Result;
            var movies = new[] { new Movie {
                                     Id = "10", Name = "SuperMan"
                                 } };

            await this.IndexForDocumentsDeletion.AddDocuments(movies);
        }
예제 #12
0
        public async Task Should_be_able_To_Create_Index_with_primaryKey()
        {
            var httpclient = ClientFactory.Instance.CreateClient <MeilisearchClient>();
            var client     = new MeilisearchClient(httpclient);
            var indexName  = "uid2" + new Random().Next();
            var index      = await client.CreateIndex(indexName, "movieId");

            index.Uid.Should().Be(indexName);
            index.PrimaryKey.Should().Be("movieId");
        }
예제 #13
0
        public async Task Should_return_the_index_requested()
        {
            var _httpClient = ClientFactory.Instance.CreateClient <MeilisearchClient>();
            var client      = new MeilisearchClient(_httpClient);
            var indexName   = "uid5" + new Random().Next();
            var index       = await client.CreateIndex(indexName, "movieId");

            var indexes = await client.GetIndex(indexName);

            index.Uid.Should().Be(indexName);
        }
예제 #14
0
        public async Task Should_be_Able_To_Modify_Primary_Key()
        {
            var httpclient = ClientFactory.Instance.CreateClient <MeilisearchClient>();
            var client     = new MeilisearchClient(httpclient);
            var index      = await client.CreateIndex("Indextest" + new Random().Next());

            var primarykey    = "MovieId" + new Random().Next();
            var modifiedIndex = await index.ChangePrimaryKey(primarykey);

            modifiedIndex.PrimaryKey.Should().Be(primarykey);
        }
예제 #15
0
        public async Task Should_return_All_The_Index_In_the_System()
        {
            var _httpClient = ClientFactory.Instance.CreateClient <MeilisearchClient>();
            var client      = new MeilisearchClient(_httpClient);
            var indexName   = "uid4" + new Random().Next();
            var index       = await client.CreateIndex(indexName, "movieId");

            var indexes = await client.GetAllIndexes();

            indexes.Count().Should().BeGreaterOrEqualTo(1);
        }
예제 #16
0
        public async Task Basic_Version_Of_default_client()
        {
            MeilisearchClient ms = new MeilisearchClient("http://localhost:7700", "masterKey");
            var   indexName      = "uid" + new Random().Next();
            Index index          = await ms.CreateIndex(indexName);

            var updateStatus = await index.AddDocuments(new[] { new  Movie {
                                                                    Id = "1", Name = "Batman"
                                                                } });

            updateStatus.UpdateId.Should().BeGreaterOrEqualTo(0);
        }
예제 #17
0
        public async Task BasicUsageOfCustomClient()
        {
            var httpClient       = ClientFactory.Instance.CreateClient <MeilisearchClient>();
            MeilisearchClient ms = new MeilisearchClient(httpClient);
            var indexUid         = "uid" + new Random().Next();

            Meilisearch.Index index = await ms.CreateIndex(indexUid);

            var updateStatus = await index.AddDocuments(new[] { new Movie {
                                                                    Id = "1", Name = "Batman"
                                                                } });

            updateStatus.UpdateId.Should().BeGreaterOrEqualTo(0);
        }
예제 #18
0
 public SettingsTests()
 {
     this.client = new MeilisearchClient("http://localhost:7700", "masterKey");
     this.defaultRankingRules = new string[]
     {
         "typo",
         "words",
         "proximity",
         "attribute",
         "wordsPosition",
         "exactness",
     };
     this.defaultSearchableAndDisplayedAttributes = new string[] { "*" };
 }
예제 #19
0
        public async Task Should_be_Able_to_Get_Status_By_Id()
        {
            var httpclient = ClientFactory.Instance.CreateClient <MeilisearchClient>();
            var client     = new MeilisearchClient(httpclient);
            var indexName  = "MoviesStatus" + new Random().Next();
            var index      = await client.CreateIndex(indexName);

            var status = await index.AddorUpdateDocuments(new[] { new Movie {
                                                                      Id = "2"
                                                                  } });

            UpdateStatus individualStatus = await index.GetUpdateStatus(status.UpdateId);

            individualStatus.Should().NotBeNull();
        }
예제 #20
0
        public async Task Should_be_Able_to_get_All_The_Update_Status()
        {
            var httpclient = ClientFactory.Instance.CreateClient <MeilisearchClient>();
            var client     = new MeilisearchClient(httpclient);
            var indexName  = "MoviesStatus" + new Random().Next();
            var index      = await client.CreateIndex(indexName);

            await index.AddorUpdateDocuments(new[] { new Movie {
                                                         Id = "1"
                                                     } });

            var status = await index.GetAllUpdateStatus();

            status.Count().Should().BeGreaterOrEqualTo(1);
        }
 public SettingsTests(IndexFixture fixture)
 {
     fixture.DeleteAllIndexes().Wait(); // Test context cleaned for each [Fact]
     this.client = fixture.DefaultClient;
     this.defaultRankingRules = new string[]
     {
         "typo",
         "words",
         "proximity",
         "attribute",
         "wordsPosition",
         "exactness",
     };
     this.defaultSearchableAndDisplayedAttributes = new string[] { "*" };
     this.index = fixture.SetUpBasicIndex("BasicIndex-SettingsTests").Result;
 }
예제 #22
0
        public void SetUp()
        {
            try
            {
                var client = new MeilisearchClient(_httpClient);
                var index  = client.GetIndex("Movies").Result;

                if (index == null)
                {
                    this.documentIndex = client.CreateIndex("Movies").Result;
                }
                else
                {
                    this.documentIndex = index;
                }

                var movies = new[]
                {
                    new Movie {
                        Id = "10", Name = "SuperMan"
                    },
                    new Movie {
                        Id = "11", Name = "SpiderMan"
                    },
                    new Movie {
                        Id = "12", Name = "IronMan"
                    },
                    new Movie {
                        Id = "13", Name = "SpiderMan"
                    },
                    new Movie {
                        Id = "14", Name = "IronMan"
                    },
                    new Movie {
                        Id = "15", Name = "SpiderMan"
                    },
                    new Movie {
                        Id = "16", Name = "IronMan"
                    }
                };
                var updateStatus = this.documentIndex.AddorUpdateDocuments(movies).Result;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
예제 #23
0
        public async void SetUpForFaceting(MeilisearchClient client, string indexUid)
        {
            this.IndexForFaceting = client.GetOrCreateIndex(indexUid).Result;
            var movies = new[]
            {
                new Movie {
                    Id = "10", Name = "Gladiator"
                },
                new Movie {
                    Id = "11", Name = "Interstellar"
                },
                new Movie {
                    Id = "12", Name = "Star Wars", Genre = "SF"
                },
                new Movie {
                    Id = "13", Name = "Harry Potter", Genre = "SF"
                },
                new Movie {
                    Id = "14", Name = "Iron Man", Genre = "Action"
                },
                new Movie {
                    Id = "15", Name = "Spider-Man", Genre = "Action"
                },
                new Movie {
                    Id = "16", Name = "Amélie Poulain", Genre = "French movie"
                },
                new Movie {
                    Id = "17", Name = "Mission Impossible", Genre = "Action"
                },
            };

            await this.IndexForFaceting.AddDocuments(movies);

            Settings settings = new Settings
            {
                AttributesForFaceting = new string[] { "genre" },
            };

            await this.IndexForFaceting.UpdateAllSettings(settings);
        }
예제 #24
0
 public DocumentTests(IndexFixture fixture)
 {
     fixture.DeleteAllIndexes().Wait(); // Context test cleaned for each [Fact]
     this.fixture = fixture;
     this.client  = fixture.DefaultClient;
 }
 public MeilisearchClientTests(IndexFixture fixture)
 {
     fixture.DeleteAllIndexes().Wait(); // Test context cleaned for each [Fact]
     this.defaultClient     = fixture.DefaultClient;
     this.defaultPrimaryKey = "movieId";
 }
예제 #26
0
 public async Task Should_Fail_to_Create_If_the_Index_is_of_bad_Format()
 {
     var httpclient = ClientFactory.Instance.CreateClient <MeilisearchClient>();
     var client     = new MeilisearchClient(httpclient);
     await Assert.ThrowsAsync <Exception>(() => client.CreateIndex("wrong UID"));
 }
예제 #27
0
 public IndexTests(IndexFixture fixture)
 {
     fixture.DeleteAllIndexes().Wait(); // Test context cleaned for each [Fact]
     this.defaultClient = fixture.DefaultClient;
 }
예제 #28
0
 public MeilisearchClientTests()
 {
     this.defaultClient     = new MeilisearchClient("http://localhost:7700", "masterKey");
     this.defaultPrimaryKey = "movieId";
 }
예제 #29
0
 public IndexTests()
 {
     this.defaultClient = new MeilisearchClient("http://localhost:7700", "masterKey");
     this.random        = new Random();
 }