HandlerResponse WebEngine::evaluate(HandlerRequest & req) { Handler * h = &HandlerRegistrar::getRoot(); for(auto part : req.URIParts) { h = &h->resolve(part, &req); } HandlerResponse res; switch(req.method) { case HM_GET: { res = h->get(req); break; } case HM_POST: { res = h->post(req); break; } case HM_PUT: { res = h->put(req); break; } case HM_DELETE: { res = h->del(req); break; } case HM_OPTIONS: { res = h->get(req); break; } case HM_AUTH: { res = MakeAuthorizationResponse( h->authorize(req.body, req.version) ); break; } default: { res.meta.code = RSC_ERR_BAD_METHOD; break; } } return res; }
TEST_F(DrawableTest, StretchDrawableTest) { Handler<Drawable> dr = dmanager->queryDrawable("stretch:color:red", geom::Box(100,100)); ASSERT_TRUE(dynamic_cast<StretchDrawable*>(dr.get())); ASSERT_FLOAT_EQ(100, dr->width()); ASSERT_FLOAT_EQ(100, dr->height()); }
TEST_F(DrawableTest, ColorDrawableTest) { Handler<Drawable> dr = dmanager->queryDrawable("color:red", geom::Box(100,100)); ASSERT_TRUE(dynamic_cast<ColorDrawable*>(dr.get())); ASSERT_FLOAT_EQ(100, dr->width()); ASSERT_FLOAT_EQ(100, dr->height()); ASSERT_TRUE(dr->size().near(geom::Box(100, 100), 1)); ASSERT_EQ(Red, dr.cast<ColorDrawable>()->color()); }
TEST_F(DrawableTest, ImageDrawableWithoutSizeTest) { Handler<Drawable> dr = dmanager->queryDrawable("image:" MATERIAL_DIR "/img/test.png", geom::Box()); ASSERT_TRUE(dynamic_cast<ImageDrawable*>(dr.get())); ASSERT_FLOAT_EQ(360, dr->width()); ASSERT_FLOAT_EQ(480, dr->height()); ASSERT_TRUE(dr->size().near(geom::Box(360, 480), 1)); Handler<ImageDrawable> img(dr.cast<ImageDrawable>()); ASSERT_EQ(360, img->sprite()->width()); ASSERT_EQ(480, img->sprite()->height()); }
inline MachineLock(Handler<NesGeist> const& parent):parent_(*parent.get()) { parent_.machine_mutex_.lock(); };