public async Task <ActionResult <IList <PlantSpecies> > > GetAll([FromQuery] GetAllPlantSpeciesRequest request) { var query = new GetAllPlantSpeciesQuery { NameFilter = request.NameFilter }; var response = await mediator.Send(query); if (!response.Success) { return(BadRequest(response.ErrorMessages)); } var responseData = response.Data.Select(PlantSpecies.FromCore); return(Ok(responseData)); }
public async Task QueryAllPlantSpecies() { await using var context = DatabaseHelper.CreateInMemoryDatabaseContext(nameof(QueryAllPlantSpecies)); var id1 = Guid.NewGuid(); var id2 = Guid.NewGuid(); var id3 = Guid.NewGuid(); var id4 = Guid.NewGuid(); var id5 = Guid.NewGuid(); var name1 = "Hello"; var name2 = "World"; var name3 = "ab"; var name4 = "world Hello abcdefgh"; var name5 = "Töster"; var plantSpecies1 = new PlantSpecies { Id = id1, Name = name1 }; var plantSpecies2 = new PlantSpecies { Id = id2, Name = name2 }; var plantSpecies3 = new PlantSpecies { Id = id3, Name = name3 }; var plantSpecies4 = new PlantSpecies { Id = id4, Name = name4 }; var plantSpecies5 = new PlantSpecies { Id = id5, Name = name5 }; await context.PlantSpecies.AddRangeAsync(plantSpecies1, plantSpecies2, plantSpecies3, plantSpecies4, plantSpecies5); await context.SaveChangesAsync(); var queryAll = new GetAllPlantSpeciesQuery(); var queryHandler = new GetAllPlantSpeciesQueryHandler(context); var result = await queryHandler.Handle(queryAll, CancellationToken.None); Assert.True(result.Success); Assert.Equal(5, result.Data.Count()); Assert.Contains(result.Data, dto => dto.Id.Equals(id1) && dto.Name.Equals(name1)); Assert.Contains(result.Data, dto => dto.Id.Equals(id2) && dto.Name.Equals(name2)); Assert.Contains(result.Data, dto => dto.Id.Equals(id3) && dto.Name.Equals(name3)); Assert.Contains(result.Data, dto => dto.Id.Equals(id4) && dto.Name.Equals(name4)); Assert.Contains(result.Data, dto => dto.Id.Equals(id5) && dto.Name.Equals(name5)); var queryAllHello = new GetAllPlantSpeciesQuery { NameFilter = "Hello" }; var resultAllHello = await queryHandler.Handle(queryAllHello, CancellationToken.None); Assert.True(resultAllHello.Success); Assert.Equal(2, resultAllHello.Data.Count()); Assert.Contains(resultAllHello.Data, dto => dto.Id.Equals(id1) && dto.Name.Equals(name1)); Assert.Contains(resultAllHello.Data, dto => dto.Id.Equals(id4) && dto.Name.Equals(name4)); var queryAllWorld = new GetAllPlantSpeciesQuery { NameFilter = "World" }; var resultAllWorld = await queryHandler.Handle(queryAllWorld, CancellationToken.None); Assert.True(resultAllWorld.Success); Assert.Single(resultAllWorld.Data); Assert.Contains(resultAllWorld.Data, dto => dto.Id.Equals(id2) && dto.Name.Equals(name2)); var queryAllHelloLc = new GetAllPlantSpeciesQuery { NameFilter = "hello" }; var resultAllHelloLc = await queryHandler.Handle(queryAllHelloLc, CancellationToken.None); Assert.True(resultAllHelloLc.Success); Assert.Empty(resultAllHelloLc.Data); var querySpecialChar = new GetAllPlantSpeciesQuery { NameFilter = "ö" }; var resultSpecialChar = await queryHandler.Handle(querySpecialChar, CancellationToken.None); Assert.True(resultSpecialChar.Success); Assert.Single(resultSpecialChar.Data); Assert.Contains(resultSpecialChar.Data, dto => dto.Id.Equals(id5) && dto.Name.Equals(name5)); }