public void Add_Route()
        {
            string routeName = "Test Route to Add";

            // Add to database
            using (ThamesClipperContext ctx = new ThamesClipperContext())
            {
                RouteRepository routeRepository = new RouteRepository(ctx);
                routeRepository.Add(new Route { Name = routeName, TimeTable = new TimeTable { Name = "TimeTable to add" } });
                routeRepository.SaveChanges();
            }

            // Check that it is there
            using (ThamesClipperContext ctx = new ThamesClipperContext())
            {
                List<Route> routes = ctx.Routes.Where(route => route.Name == routeName).ToList();
                Assert.AreEqual(1, routes.Count());
            }
        }
        public void Delete_Route_By_Route()
        {
            string routeName = "Test Route to Delete";

            // Add to database
            using (ThamesClipperContext ctx = new ThamesClipperContext())
            {
                RouteRepository routeRepository = new RouteRepository(ctx);
                Route route = new Route { 
                    Name = routeName, 
                    TimeTable = new TimeTable { Name = "TimeTable" }
                };

                route.Schedules = new List<Schedule>() { new Schedule { 
                    Route = route, 
                    Pier = new Pier { Name = "Pier" },
                    Time = new TimeSpan(1, 0, 0)
                    }
                };

                routeRepository.Add(route);
                routeRepository.SaveChanges();
            }

            // Find and delete it
            using (ThamesClipperContext ctx = new ThamesClipperContext())
            {
                List<Route> routes = ctx.Routes.Where(route => route.Name == routeName).ToList();
                Assert.AreEqual(1, routes.Count());

                RouteRepository routeRepository = new RouteRepository(ctx);
                routeRepository.Delete(routes[0]);
                routeRepository.SaveChanges();
            }

            // Check that nothing is there
            using (ThamesClipperContext ctx = new ThamesClipperContext())
            {
                List<Route> routes = ctx.Routes.Where(route => route.Name == routeName).ToList();
                Assert.AreEqual(0, routes.Count());
            }
        }
        public void Update_Route()
        {
            string routeName = "Test Route to Update";
            string routeNameUpdated = "Test Route Updated";

            // Add to database
            using (ThamesClipperContext ctx = new ThamesClipperContext())
            {
                RouteRepository routeRepository = new RouteRepository(ctx);
                routeRepository.Add(new Route { Name = routeName, TimeTable = new TimeTable { Name = "TimeTable" } });
                routeRepository.SaveChanges();
            }

            // Find and update it
            using (ThamesClipperContext ctx = new ThamesClipperContext())
            {
                List<Route> routes = ctx.Routes.Where(route => route.Name == routeName).ToList();
                Assert.AreEqual(1, routes.Count());

                RouteRepository routeRepository = new RouteRepository(ctx);
                routes[0].Name = routeNameUpdated;
                routeRepository.Update(routes[0]);
                routeRepository.SaveChanges();
            }

            // Check that the new name is there
            using (ThamesClipperContext ctx = new ThamesClipperContext())
            {
                List<Route> routes = ctx.Routes.Where(route => route.Name == routeNameUpdated).ToList();
                Assert.AreEqual(1, routes.Count());
            }
        }