// Register the monolog logging service $app->register(new Silex\Provider\MonologServiceProvider(), array('monolog.logfile' => 'php://stderr')); // Register view rendering $app->register(new Silex\Provider\TwigServiceProvider(), array('twig.path' => __DIR__ . '/../views')); // Register patch and delete http methods use Symfony\Component\HttpFoundation\Request; Request::enableHttpMethodParameterOverride(); $app->get('/', function () use($app) { return $app['twig']->render('index.html.twig'); #, array('options' => Option::getAll())); }); $app->post('/options', function () use($app) { $suitable_option_names = $_POST["option_names"]; $suitable_option_ids = Option::getIdsFromNames($suitable_option_names); $options = Option::getObjects($suitable_option_ids); $suitable_restaurants = Restaurant::suitableRestaurants($suitable_option_ids); return $app['twig']->render('results.html.twig', array('suitable_restaurants' => $suitable_restaurants, 'options' => $options)); }); $app->get('/admin', function () use($app) { return $app['twig']->render('admin.html.twig', array('restaurants' => Restaurant::getAll(), 'options' => Option::getAll())); }); $app->post('/add_restaurants', function () use($app) { $restaurant_name = new Restaurant($_POST['restaurant_name']); $restaurant_name->save(); return $app['twig']->render('admin.html.twig', array('restaurants' => Restaurant::getAll(), 'options' => Option::getAll())); }); $app->post('/add_options', function () use($app) { $option_name = new Option($_POST['option_name']); $option_name->save(); return $app['twig']->render('admin.html.twig', array('restaurants' => Restaurant::getAll(), 'options' => Option::getAll())); });
function test_suitableRestaurants() { // arrange $restaurant_name = "Taco Hell"; $test_restaurant = new Restaurant($restaurant_name); $test_restaurant->save(); $restaurant_name2 = "Burger Queen"; $test_restaurant2 = new Restaurant($restaurant_name2); $test_restaurant2->save(); $option_name = "Shellfish-free"; $test_option = new Option($option_name); $test_option->save(); $option_name2 = "Gasoline-free"; $test_option2 = new Option($option_name2); $test_option2->save(); $option_name3 = "Soy-free"; $test_option3 = new Option($option_name3); $test_option3->save(); // act $test_restaurant->addOption($test_option2); $test_restaurant->addOption($test_option3); $test_restaurant2->addOption($test_option); $test_restaurant2->addOption($test_option2); $test_restaurant2->addOption($test_option3); $option_ids = array(); array_push($option_ids, $test_option->getId()); array_push($option_ids, $test_option3->getId()); $result = Restaurant::suitableRestaurants($option_ids); // assert $this->assertEquals([$test_restaurant2], $result); }