using System; using System.Linq; using System.Threading.Tasks; using LeedsBeerQuest.API.Data.Contexts; using LeedsBeerQuest.API.Data.Services; using Microsoft.EntityFrameworkCore; using NUnit.Framework; namespace LeedsBeerQuest.API.Tests.Data.Services; [TestFixture] public class VenueServiceTests { private LeedsBeerQuestDbContext _context; private VenueService _venueService; [SetUp] public void Setup() { var builder = new DbContextOptionsBuilder() .UseInMemoryDatabase($"VenueServiceTests.{Guid.NewGuid().ToString()}"); _context = new LeedsBeerQuestDbContext(builder.Options); _venueService = new VenueService(_context); } [Test] public async Task GetAllVenues_ReturnsAllVenues_WhenAllVenuesArePresentInDatabase() { var venueTestData = TestData.VenueTestData.ToArray(); _context.Venues.AddRange(venueTestData); await _context.SaveChangesAsync(); var result = await _venueService.GetAllVenues(); var resultArray = result.ToArray(); Assert.AreEqual(1, resultArray.Length); Assert.AreEqual(venueTestData[0].Id, resultArray[0].Id); Assert.AreEqual(venueTestData[0].Name, resultArray[0].Name); } [Test] public async Task GetAllVenues_ReturnsNoVenues_WhenNoVenuesArePresentInDatabase() { var result = await _venueService.GetAllVenues(); Assert.AreEqual(0, result.Count()); } }