public void LocalDb_defaults_to_V11()
 {
     using (var db = new LocalDb())
     {
         Assert.Equal(LocalDb.Versions.V11, db.Version);
     }
 }
 public void LocalDB_has_localdb_in_name()
 {
     using (var db = new LocalDb())
     {
         Assert.Contains("localdb", db.DatabaseName);
     }
 }
 public void LocalDB_Throws_Valid_Exception_When_Not_Supported_Version()
 {
     Assert.Throws<ArgumentOutOfRangeException>(() =>
     {
         using (var db = new LocalDb(version: "vBad")) {}
     });
 }
 public void Can_CreateLocalDB_With_V12()
 {
     using (var db = new LocalDb(version: LocalDb.Versions.V12))
     {
         Assert.NotNull(db);
     }
 }
        public void can_get_animals_using_explicit_relationship_between_animal_and_enclosure()
        {
            using (var sandbox = new LocalDb())
            {
                Runner.MigrateToLatest(sandbox.ConnectionString);

                using (var context = new ZooDbContext(sandbox.ConnectionString))
                {
                    var enclosure = new Enclosure() { Id = 1, Name = "Kenya", Location = "Africa", Environment = "Sahara" };
                    var animal = new Animal() { Name = "Nala", Species = "Lion", EnclosureId = 1 };

                    context.Animals.Add(animal);
                    context.Enclosures.Add(enclosure);
                    context.SaveChanges();

                    var controller = new HomeController() { Database = context };

                    var result = controller.Index() as ViewResult;
                    var model = result == null ? new IndexViewModel() : result.Model as IndexViewModel;

                    Assert.Equal(1, model.Animals.Count());
                    Assert.Equal("Nala", model.Animals.First().AnimalName);
                }
            }
        }
 public void LocalDb_set_databaseSuffixGenerator()
 {
     var guid = Guid.NewGuid().ToString("N");
     using (var db = new LocalDb(databaseSuffixGenerator: () => guid ))
     {
         Assert.Contains(guid, db.DatabaseName);
         Debug.WriteLine(db.DatabaseName);
     }
 }
        public void Can_throw_an_exception()
        {
            using (var sandbox = new LocalDb())
            {
                Runner.MigrateToLatest(sandbox.ConnectionString);

                using (var one = new ZooDbContext(sandbox.ConnectionString))
                {
                    var enclosure = new Enclosure {Environment = "Here", Name = "One", Location = "Here"};
                    one.Enclosures.Add(enclosure);
                    one.SaveChanges();

                    using (var two = new ZooDbContext(sandbox.ConnectionString))
                    {
                        var change = two.Enclosures.Find(enclosure.Id);
                        change.Name = "Changed";
                        two.SaveChanges();
                    }

                    enclosure.Name = "Last Time";
                    Assert.Throws<DbUpdateConcurrencyException>(() =>  one.SaveChanges());
                }
            }
        }