public async Task <DetailedSampleViewModel> GetSampleById(string id) { var sample = this.Context .Samples .AsNoTracking() .Select(samp => new Sample { Id = samp.Id, Name = samp.Name, Description = samp.Description, CreatedOn = samp.CreatedOn, CreatedBy = samp.CreatedBy, }) .First(samp => samp.Id == new Guid(id)); var tags = this.Context .SampleTags .AsNoTracking() .Where(t => t.SampleId == new Guid(id)) .Select(t => t.Tag) .ToList(); var groups = this.Context .SampleGroups .AsNoTracking() .Where(t => t.SampleId == new Guid(id)) .Select(t => t.Group) .ToList(); var nutrients = this.Context .SampleNutrientAgarPlates .AsNoTracking() .Where(t => t.SampleId == new Guid(id)) .Select(t => t.NutrientAgarPlate) .ToList(); var images = this.Context .Images .AsNoTracking() .Where(img => img.SampleId == new Guid(id)) .Select(img => new SampleImage() { Id = img.Id, Url = img.Url, }) .ToList(); var sampleViewModel = new DetailedSampleViewModel(); sampleViewModel.Id = sample.Id; sampleViewModel.Name = sample.Name; sampleViewModel.Description = sample.Description; sampleViewModel.CreatedOn = sample.CreatedOn; sampleViewModel.CreatedBy = sample.CreatedBy; sampleViewModel.Tags = tags; sampleViewModel.Groups = groups; sampleViewModel.NutrientAgarPlates = nutrients; sampleViewModel.Images = images; return(sampleViewModel); }
public async Task Get_SampleById_ShouldReturnSample() { // Arrange var sampleId = "12354321-3123-1122-4332-123456789231"; var sample = new DetailedSampleViewModel() { Id = new Guid(sampleId), Name = "Test 1" }; var serviceMock = new Mock <ISampleService>(); // Using Moq to mock the service serviceMock .Setup(s => s.GetSampleById(sampleId)) .ReturnsAsync(sample); var loggerMock = new Mock <ILogger>(); var controller = new SampleController(serviceMock.Object, null, null, loggerMock.Object); // Act var response = await controller.GetSampleById(sampleId); // Assert Assert.NotNull(response); var okObjectResult = response as OkObjectResult; Assert.NotNull(okObjectResult); var model = okObjectResult.Value as DetailedSampleViewModel; Assert.NotNull(model); var modelId = model.Id; Assert.Equal(new Guid(sampleId), modelId); }