@@ -2318,3 +2318,62 @@ TEST_F(URITemplateRouterViewTest,
23182318 EXPECT_ROUTER_MATCH (restored, " /users" , 1 , 20 , captures);
23192319 EXPECT_EQ (captures.size (), 0 );
23202320}
2321+
2322+ TEST_F (URITemplateRouterViewTest, size_empty_router) {
2323+ {
2324+ const sourcemeta::core::URITemplateRouter router;
2325+ sourcemeta::core::URITemplateRouterView::save (router, this ->path );
2326+ }
2327+
2328+ const sourcemeta::core::URITemplateRouterView restored{this ->path };
2329+ EXPECT_EQ (restored.size (), 0 );
2330+ }
2331+
2332+ TEST_F (URITemplateRouterViewTest, size_single_route) {
2333+ {
2334+ sourcemeta::core::URITemplateRouter router;
2335+ router.add (" /users" , 1 );
2336+ sourcemeta::core::URITemplateRouterView::save (router, this ->path );
2337+ }
2338+
2339+ const sourcemeta::core::URITemplateRouterView restored{this ->path };
2340+ EXPECT_EQ (restored.size (), 1 );
2341+ }
2342+
2343+ TEST_F (URITemplateRouterViewTest, size_multiple_routes) {
2344+ {
2345+ sourcemeta::core::URITemplateRouter router;
2346+ router.add (" /users" , 1 );
2347+ router.add (" /users/{id}" , 2 );
2348+ router.add (" /posts" , 3 );
2349+ router.add (" /posts/{id}" , 4 );
2350+ sourcemeta::core::URITemplateRouterView::save (router, this ->path );
2351+ }
2352+
2353+ const sourcemeta::core::URITemplateRouterView restored{this ->path };
2354+ EXPECT_EQ (restored.size (), 4 );
2355+ }
2356+
2357+ TEST_F (URITemplateRouterViewTest, size_duplicate_route_does_not_increase) {
2358+ {
2359+ sourcemeta::core::URITemplateRouter router;
2360+ router.add (" /users" , 1 );
2361+ router.add (" /users" , 2 );
2362+ sourcemeta::core::URITemplateRouterView::save (router, this ->path );
2363+ }
2364+
2365+ const sourcemeta::core::URITemplateRouterView restored{this ->path };
2366+ EXPECT_EQ (restored.size (), 1 );
2367+ }
2368+
2369+ TEST_F (URITemplateRouterViewTest, size_with_base_path) {
2370+ {
2371+ sourcemeta::core::URITemplateRouter router{" /v1" };
2372+ router.add (" /users" , 1 );
2373+ router.add (" /posts" , 2 );
2374+ sourcemeta::core::URITemplateRouterView::save (router, this ->path );
2375+ }
2376+
2377+ const sourcemeta::core::URITemplateRouterView restored{this ->path };
2378+ EXPECT_EQ (restored.size (), 2 );
2379+ }
0 commit comments