public void CanCreatePhonebookWithEntries()
 {
     using (var context = new AbsaPhonebookContext(options))
     {
         Assert.AreEqual("Stellenbosch Directory", context.Phonebook.FirstOrDefault().Name);
         Assert.AreEqual(1, context.Phonebook.Count());
         Assert.AreEqual(2, context.PhonebookEntry.Count());
     }
 }
        public void CanRemovePhonebookEntry()
        {
            var phonebookEntry = phonebook.PhonebookEntries.Where(a => a.PhonebookId == phonebook.Id).First();

            entryRepository.Delete(phonebookEntry.Id);
            entryRepository.Commit();
            using (var context = new AbsaPhonebookContext(options))
            {
                Assert.AreEqual(1, context.PhonebookEntry.Count());
            }
        }
        public async Task CanRemovePhonebook()
        {
            repository.Delete(phonebook.Id);
            await repository.Commit();

            using (var context = new AbsaPhonebookContext(options))
            {
                Assert.AreEqual(null, context.Phonebook.FirstOrDefault());
                Assert.AreEqual(0, context.PhonebookEntry.Count());
            }
        }
 private void Dispose(bool disposing)
 {
     if (disposing)
     {
         if (context != null)
         {
             context.Dispose();
             context = null;
         }
     }
 }
        public void Setup()
        {
            //InMemory DB did not catch violation of foreign key constraint due to incorrect context configuration
            options = new DbContextOptionsBuilder <AbsaPhonebookContext>().UseSqlServer(@"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=AbsaPhonebook;Integrated Security=True;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False").Options;
            //"Data Source=(local);Initial Catalog=AbsaPhonebook;Integrated Security=True;" - MSSQL connection string
            var context = new AbsaPhonebookContext(options);

            context.RemoveRange(context.Phonebook);
            context.RemoveRange(context.PhonebookEntry);
            context.SaveChanges();

            phonebook      = PhonebookFactory.Create();
            phonebook.Name = "Stellenbosch Directory";

            phonebook.PhonebookEntries.Add(CreateEntry(phonebook, "Dave Worthington", "021979452"));
            phonebook.PhonebookEntries.Add(CreateEntry(phonebook, "Bill Lumsden", "0215554334"));
            repository      = new PhonebookRepository(context);
            entryRepository = new PhonebookEntryRepository(context);

            repository.Add(phonebook);
            repository.Commit();
        }
        public void Setup()
        {
            options = new DbContextOptionsBuilder <AbsaPhonebookContext>().UseInMemoryDatabase(databaseName: "AbsaPhonebook").Options;
            var context = new AbsaPhonebookContext(options);

            context.RemoveRange(context.Phonebook);
            context.RemoveRange(context.PhonebookEntry);
            context.SaveChanges();

            phonebook      = PhonebookFactory.Create();
            phonebook.Name = "Stellenbosch Directory";

            phonebook.PhonebookEntries.Add(CreateEntry(phonebook, "Dave Worthington", "021979452"));
            phonebookEntry = CreateEntry(phonebook, "Bill Lumsden", "0215554334");
            phonebook.PhonebookEntries.Add(phonebookEntry);
            repository      = new PhonebookRepository(context);
            entryRepository = new PhonebookEntryRepository(context);

            repository.Add(phonebook);
            repository.Commit();

            controller = new PhonebookController(repository, entryRepository);
        }
 public PhonebookRepository(AbsaPhonebookContext context)
 {
     this.context = context;
 }