Skip to content

Commit f1c61cc

Browse files
committed
Fix the merge with master
1 parent 4286260 commit f1c61cc

File tree

2 files changed

+60
-71
lines changed

2 files changed

+60
-71
lines changed

CMakeLists.txt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ target_include_directories(graphqlpeg INTERFACE $<BUILD_INTERFACE:${CMAKE_SOURCE
2929
target_link_libraries(graphqlpeg taocpp::pegtl ${GRAPHQLPARSER})
3030

3131
target_include_directories(graphqlservice INTERFACE $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}> $<INSTALL_INTERFACE:include>)
32-
target_link_libraries(graphqlservice ${CPPRESTSDK_LIB} ${GRAPHQLPARSER} graphqlpeg)
33-
target_link_libraries(schemagen ${CPPRESTSDK_LIB} ${GRAPHQLPARSER} graphqlpeg)
32+
target_link_libraries(graphqlservice ${CPPRESTSDK} ${GRAPHQLPARSER} graphqlpeg)
33+
target_link_libraries(schemagen ${CPPRESTSDK} ${GRAPHQLPARSER} graphqlpeg)
3434

3535
add_custom_command(
3636
OUTPUT IntrospectionSchema.cpp IntrospectionSchema.h
@@ -40,6 +40,7 @@ add_custom_command(
4040
)
4141

4242
if(UNIX)
43+
target_compile_options(graphqlpeg PRIVATE -std=c++11)
4344
target_compile_options(graphqlservice PRIVATE -std=c++11)
4445
target_compile_options(schemagen PRIVATE -std=c++11)
4546
endif()
@@ -71,6 +72,7 @@ if(BUILD_TESTS OR UPDATE_SAMPLES)
7172
target_link_libraries(test_today
7273
${CPPRESTSDK}
7374
${GRAPHQLPARSER}
75+
graphqlpeg
7476
graphqlservice
7577
todaygraphql)
7678
target_include_directories(test_today SYSTEM PUBLIC ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR})
@@ -103,7 +105,7 @@ if(BUILD_TESTS OR UPDATE_SAMPLES)
103105
endif()
104106
endif()
105107

106-
install(TARGETS graphqlservice schemagen
108+
install(TARGETS graphqlpeg graphqlservice schemagen
107109
EXPORT cppgraphqlgen-config
108110
RUNTIME DESTINATION bin
109111
ARCHIVE DESTINATION lib
@@ -114,7 +116,7 @@ install(FILES GraphQLService.h Introspection.h IntrospectionSchema.h
114116

115117
if(WIN32)
116118
set(GRAPHQLSERVICE_DIR $<TARGET_FILE_DIR:graphqlservice>)
117-
install(FILES ${GRAPHQLSERVICE_DIR}/graphqlservice.lib
119+
install(FILES ${GRAPHQLSERVICE_DIR}/graphqlservice.lib ${GRAPHQLSERVICE_DIR}/graphqlpeg.lib
118120
DESTINATION lib)
119121
endif()
120122

tests.cpp

Lines changed: 54 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,6 @@ TEST_F(TodayServiceCase, QueryEverything)
170170

171171
TEST_F(TodayServiceCase, QueryEverythingWithPegtl)
172172
{
173-
const char* error = nullptr;
174173
auto ast = service::parseString(R"gql(
175174
query Everything {
176175
appointments {
@@ -202,13 +201,6 @@ TEST_F(TodayServiceCase, QueryEverythingWithPegtl)
202201
}
203202
}
204203
})gql");
205-
EXPECT_EQ(nullptr, error) << error;
206-
if (nullptr != error)
207-
{
208-
free(const_cast<char*>(error));
209-
return;
210-
}
211-
212204
auto result = _service->resolve(*ast, "Everything", web::json::value::object().as_object());
213205
EXPECT_EQ(1, _getAppointmentsCount) << "today service lazy loads the appointments and caches the result";
214206
EXPECT_EQ(1, _getTasksCount) << "today service lazy loads the tasks and caches the result";
@@ -225,38 +217,38 @@ TEST_F(TodayServiceCase, QueryEverythingWithPegtl)
225217
errors << errorsItr->second;
226218
FAIL() << utility::conversions::to_utf8string(errors.str());
227219
}
228-
auto data = service::ScalarArgument<>::require("data", result.as_object());
220+
auto data = service::ScalarArgument::require("data", result.as_object());
229221

230-
auto appointmentEdges = service::ScalarArgument<service::TypeModifier::List>::require("edges",
231-
service::ScalarArgument<>::require("appointments", data.as_object()).as_object());
222+
auto appointmentEdges = service::ScalarArgument::require<service::TypeModifier::List>("edges",
223+
service::ScalarArgument::require("appointments", data.as_object()).as_object());
232224
ASSERT_EQ(1, appointmentEdges.size()) << "appointments should have 1 entry";
233225
ASSERT_TRUE(appointmentEdges[0].is_object()) << "appointment should be an object";
234-
auto appointmentNode = service::ScalarArgument<>::require("node", appointmentEdges[0].as_object());
226+
auto appointmentNode = service::ScalarArgument::require("node", appointmentEdges[0].as_object());
235227
const web::json::object& appointment = appointmentNode.as_object();
236-
EXPECT_EQ(_fakeAppointmentId, service::IdArgument<>::require("id", appointment)) << "id should match in base64 encoding";
237-
EXPECT_EQ("Lunch?", service::StringArgument<>::require("subject", appointment)) << "subject should match";
238-
EXPECT_EQ("tomorrow", service::StringArgument<>::require("when", appointment)) << "when should match";
239-
EXPECT_FALSE(service::BooleanArgument<>::require("isNow", appointment)) << "isNow should match";
228+
EXPECT_EQ(_fakeAppointmentId, service::IdArgument::require("id", appointment)) << "id should match in base64 encoding";
229+
EXPECT_EQ("Lunch?", service::StringArgument::require("subject", appointment)) << "subject should match";
230+
EXPECT_EQ("tomorrow", service::StringArgument::require("when", appointment)) << "when should match";
231+
EXPECT_FALSE(service::BooleanArgument::require("isNow", appointment)) << "isNow should match";
240232

241-
auto taskEdges = service::ScalarArgument<service::TypeModifier::List>::require("edges",
242-
service::ScalarArgument<>::require("tasks", data.as_object()).as_object());
233+
auto taskEdges = service::ScalarArgument::require<service::TypeModifier::List>("edges",
234+
service::ScalarArgument::require("tasks", data.as_object()).as_object());
243235
ASSERT_EQ(1, taskEdges.size()) << "tasks should have 1 entry";
244236
ASSERT_TRUE(taskEdges[0].is_object()) << "task should be an object";
245-
auto taskNode = service::ScalarArgument<>::require("node", taskEdges[0].as_object());
237+
auto taskNode = service::ScalarArgument::require("node", taskEdges[0].as_object());
246238
const web::json::object& task = taskNode.as_object();
247-
EXPECT_EQ(_fakeTaskId, service::IdArgument<>::require("id", task)) << "id should match in base64 encoding";
248-
EXPECT_EQ("Don't forget", service::StringArgument<>::require("title", task)) << "title should match";
249-
EXPECT_TRUE(service::BooleanArgument<>::require("isComplete", task)) << "isComplete should match";
239+
EXPECT_EQ(_fakeTaskId, service::IdArgument::require("id", task)) << "id should match in base64 encoding";
240+
EXPECT_EQ("Don't forget", service::StringArgument::require("title", task)) << "title should match";
241+
EXPECT_TRUE(service::BooleanArgument::require("isComplete", task)) << "isComplete should match";
250242

251-
auto unreadCountEdges = service::ScalarArgument<service::TypeModifier::List>::require("edges",
252-
service::ScalarArgument<>::require("unreadCounts", data.as_object()).as_object());
243+
auto unreadCountEdges = service::ScalarArgument::require<service::TypeModifier::List>("edges",
244+
service::ScalarArgument::require("unreadCounts", data.as_object()).as_object());
253245
ASSERT_EQ(1, unreadCountEdges.size()) << "unreadCounts should have 1 entry";
254246
ASSERT_TRUE(unreadCountEdges[0].is_object()) << "unreadCount should be an object";
255-
auto unreadCountNode = service::ScalarArgument<>::require("node", unreadCountEdges[0].as_object());
247+
auto unreadCountNode = service::ScalarArgument::require("node", unreadCountEdges[0].as_object());
256248
const web::json::object& folder = unreadCountNode.as_object();
257-
EXPECT_EQ(_fakeFolderId, service::IdArgument<>::require("id", folder)) << "id should match in base64 encoding";
258-
EXPECT_EQ("\"Fake\" Inbox", service::StringArgument<>::require("name", folder)) << "name should match";
259-
EXPECT_EQ(3, service::IntArgument<>::require("unreadCount", folder)) << "isComplete should match";
249+
EXPECT_EQ(_fakeFolderId, service::IdArgument::require("id", folder)) << "id should match in base64 encoding";
250+
EXPECT_EQ("\"Fake\" Inbox", service::StringArgument::require("name", folder)) << "name should match";
251+
EXPECT_EQ(3, service::IntArgument::require("unreadCount", folder)) << "isComplete should match";
260252
}
261253
catch (const service::schema_exception& ex)
262254
{
@@ -341,7 +333,6 @@ TEST_F(TodayServiceCase, QueryAppointmentsWithPegtl)
341333
}
342334
}
343335
})gql");
344-
345336
auto result = _service->resolve(*ast, "", web::json::value::object().as_object());
346337
EXPECT_EQ(1, _getAppointmentsCount) << "today service lazy loads the appointments and caches the result";
347338
EXPECT_GE(1, _getTasksCount) << "today service lazy loads the tasks and caches the result";
@@ -358,18 +349,18 @@ TEST_F(TodayServiceCase, QueryAppointmentsWithPegtl)
358349
errors << errorsItr->second;
359350
FAIL() << utility::conversions::to_utf8string(errors.str());
360351
}
361-
auto data = service::ScalarArgument<>::require("data", result.as_object());
352+
auto data = service::ScalarArgument::require("data", result.as_object());
362353

363-
auto appointmentEdges = service::ScalarArgument<service::TypeModifier::List>::require("edges",
364-
service::ScalarArgument<>::require("appointments", data.as_object()).as_object());
354+
auto appointmentEdges = service::ScalarArgument::require<service::TypeModifier::List>("edges",
355+
service::ScalarArgument::require("appointments", data.as_object()).as_object());
365356
ASSERT_EQ(1, appointmentEdges.size()) << "appointments should have 1 entry";
366357
ASSERT_TRUE(appointmentEdges[0].is_object()) << "appointment should be an object";
367-
auto appointmentNode = service::ScalarArgument<>::require("node", appointmentEdges[0].as_object());
358+
auto appointmentNode = service::ScalarArgument::require("node", appointmentEdges[0].as_object());
368359
const web::json::object& appointment = appointmentNode.as_object();
369-
EXPECT_EQ(_fakeAppointmentId, service::IdArgument<>::require("appointmentId", appointment)) << "id should match in base64 encoding";
370-
EXPECT_EQ("Lunch?", service::StringArgument<>::require("subject", appointment)) << "subject should match";
371-
EXPECT_EQ("tomorrow", service::StringArgument<>::require("when", appointment)) << "when should match";
372-
EXPECT_FALSE(service::BooleanArgument<>::require("isNow", appointment)) << "isNow should match";
360+
EXPECT_EQ(_fakeAppointmentId, service::IdArgument::require("appointmentId", appointment)) << "id should match in base64 encoding";
361+
EXPECT_EQ("Lunch?", service::StringArgument::require("subject", appointment)) << "subject should match";
362+
EXPECT_EQ("tomorrow", service::StringArgument::require("when", appointment)) << "when should match";
363+
EXPECT_FALSE(service::BooleanArgument::require("isNow", appointment)) << "isNow should match";
373364
}
374365
catch (const service::schema_exception& ex)
375366
{
@@ -451,7 +442,6 @@ TEST_F(TodayServiceCase, QueryTasksWithPegtl)
451442
}
452443
}
453444
})gql");
454-
455445
auto result = _service->resolve(*ast, "", web::json::value::object().as_object());
456446
EXPECT_GE(1, _getAppointmentsCount) << "today service lazy loads the appointments and caches the result";
457447
EXPECT_EQ(1, _getTasksCount) << "today service lazy loads the tasks and caches the result";
@@ -468,17 +458,17 @@ TEST_F(TodayServiceCase, QueryTasksWithPegtl)
468458
errors << errorsItr->second;
469459
FAIL() << utility::conversions::to_utf8string(errors.str());
470460
}
471-
auto data = service::ScalarArgument<>::require("data", result.as_object());
461+
auto data = service::ScalarArgument::require("data", result.as_object());
472462

473-
auto taskEdges = service::ScalarArgument<service::TypeModifier::List>::require("edges",
474-
service::ScalarArgument<>::require("tasks", data.as_object()).as_object());
463+
auto taskEdges = service::ScalarArgument::require<service::TypeModifier::List>("edges",
464+
service::ScalarArgument::require("tasks", data.as_object()).as_object());
475465
ASSERT_EQ(1, taskEdges.size()) << "tasks should have 1 entry";
476466
ASSERT_TRUE(taskEdges[0].is_object()) << "task should be an object";
477-
auto taskNode = service::ScalarArgument<>::require("node", taskEdges[0].as_object());
467+
auto taskNode = service::ScalarArgument::require("node", taskEdges[0].as_object());
478468
const web::json::object& task = taskNode.as_object();
479-
EXPECT_EQ(_fakeTaskId, service::IdArgument<>::require("taskId", task)) << "id should match in base64 encoding";
480-
EXPECT_EQ("Don't forget", service::StringArgument<>::require("title", task)) << "title should match";
481-
EXPECT_TRUE(service::BooleanArgument<>::require("isComplete", task)) << "isComplete should match";
469+
EXPECT_EQ(_fakeTaskId, service::IdArgument::require("taskId", task)) << "id should match in base64 encoding";
470+
EXPECT_EQ("Don't forget", service::StringArgument::require("title", task)) << "title should match";
471+
EXPECT_TRUE(service::BooleanArgument::require("isComplete", task)) << "isComplete should match";
482472
}
483473
catch (const service::schema_exception& ex)
484474
{
@@ -560,7 +550,6 @@ TEST_F(TodayServiceCase, QueryUnreadCountsWithPegtl)
560550
}
561551
}
562552
})gql");
563-
564553
auto result = _service->resolve(*ast, "", web::json::value::object().as_object());
565554
EXPECT_GE(1, _getAppointmentsCount) << "today service lazy loads the appointments and caches the result";
566555
EXPECT_GE(1, _getTasksCount) << "today service lazy loads the tasks and caches the result";
@@ -577,17 +566,17 @@ TEST_F(TodayServiceCase, QueryUnreadCountsWithPegtl)
577566
errors << errorsItr->second;
578567
FAIL() << utility::conversions::to_utf8string(errors.str());
579568
}
580-
auto data = service::ScalarArgument<>::require("data", result.as_object());
569+
auto data = service::ScalarArgument::require("data", result.as_object());
581570

582-
auto unreadCountEdges = service::ScalarArgument<service::TypeModifier::List>::require("edges",
583-
service::ScalarArgument<>::require("unreadCounts", data.as_object()).as_object());
571+
auto unreadCountEdges = service::ScalarArgument::require<service::TypeModifier::List>("edges",
572+
service::ScalarArgument::require("unreadCounts", data.as_object()).as_object());
584573
ASSERT_EQ(1, unreadCountEdges.size()) << "unreadCounts should have 1 entry";
585574
ASSERT_TRUE(unreadCountEdges[0].is_object()) << "unreadCount should be an object";
586-
auto unreadCountNode = service::ScalarArgument<>::require("node", unreadCountEdges[0].as_object());
575+
auto unreadCountNode = service::ScalarArgument::require("node", unreadCountEdges[0].as_object());
587576
const web::json::object& folder = unreadCountNode.as_object();
588-
EXPECT_EQ(_fakeFolderId, service::IdArgument<>::require("folderId", folder)) << "id should match in base64 encoding";
589-
EXPECT_EQ("\"Fake\" Inbox", service::StringArgument<>::require("name", folder)) << "name should match";
590-
EXPECT_EQ(3, service::IntArgument<>::require("unreadCount", folder)) << "isComplete should match";
577+
EXPECT_EQ(_fakeFolderId, service::IdArgument::require("folderId", folder)) << "id should match in base64 encoding";
578+
EXPECT_EQ("\"Fake\" Inbox", service::StringArgument::require("name", folder)) << "name should match";
579+
EXPECT_EQ(3, service::IntArgument::require("unreadCount", folder)) << "isComplete should match";
591580
}
592581
catch (const service::schema_exception& ex)
593582
{
@@ -666,7 +655,6 @@ TEST_F(TodayServiceCase, MutateCompleteTaskWithPegtl)
666655
clientMutationId
667656
}
668657
})gql");
669-
670658
auto result = _service->resolve(*ast, "", web::json::value::object().as_object());
671659

672660
try
@@ -680,18 +668,18 @@ TEST_F(TodayServiceCase, MutateCompleteTaskWithPegtl)
680668
errors << errorsItr->second;
681669
FAIL() << utility::conversions::to_utf8string(errors.str());
682670
}
683-
auto data = service::ScalarArgument<>::require("data", result.as_object());
671+
auto data = service::ScalarArgument::require("data", result.as_object());
684672

685-
auto completedTask = service::ScalarArgument<>::require("completedTask", data.as_object());
673+
auto completedTask = service::ScalarArgument::require("completedTask", data.as_object());
686674
ASSERT_TRUE(completedTask.is_object()) << "payload should be an object";
687675

688-
auto task = service::ScalarArgument<>::require("completedTask", completedTask.as_object());
676+
auto task = service::ScalarArgument::require("completedTask", completedTask.as_object());
689677
EXPECT_TRUE(task.is_object()) << "should get back a task";
690-
EXPECT_EQ(_fakeTaskId, service::IdArgument<>::require("completedTaskId", task.as_object())) << "id should match in base64 encoding";
691-
EXPECT_EQ("Mutated Task!", service::StringArgument<>::require("title", task.as_object())) << "title should match";
692-
EXPECT_TRUE(service::BooleanArgument<>::require("isComplete", task.as_object())) << "isComplete should match";
678+
EXPECT_EQ(_fakeTaskId, service::IdArgument::require("completedTaskId", task.as_object())) << "id should match in base64 encoding";
679+
EXPECT_EQ("Mutated Task!", service::StringArgument::require("title", task.as_object())) << "title should match";
680+
EXPECT_TRUE(service::BooleanArgument::require("isComplete", task.as_object())) << "isComplete should match";
693681

694-
auto clientMutationId = service::StringArgument<>::require("clientMutationId", completedTask.as_object());
682+
auto clientMutationId = service::StringArgument::require("clientMutationId", completedTask.as_object());
695683
EXPECT_EQ("Hi There!", clientMutationId) << "clientMutationId should match";
696684
}
697685
catch (const service::schema_exception& ex)
@@ -811,7 +799,6 @@ TEST_F(TodayServiceCase, IntrospectionWithPegtl)
811799
}
812800
}
813801
})gql");
814-
815802
auto result = _service->resolve(*ast, "", web::json::value::object().as_object());
816803

817804
try
@@ -825,11 +812,11 @@ TEST_F(TodayServiceCase, IntrospectionWithPegtl)
825812
errors << errorsItr->second;
826813
FAIL() << utility::conversions::to_utf8string(errors.str());
827814
}
828-
auto data = service::ScalarArgument<>::require("data", result.as_object());
829-
auto schema = service::ScalarArgument<>::require("__schema", data.as_object());
830-
auto types = service::ModifiedArgument<web::json::value, service::TypeModifier::List>::require("types", schema.as_object());
831-
auto queryType = service::ScalarArgument<>::require("queryType", schema.as_object());
832-
auto mutationType = service::ScalarArgument<>::require("mutationType", schema.as_object());
815+
auto data = service::ScalarArgument::require("data", result.as_object());
816+
auto schema = service::ScalarArgument::require("__schema", data.as_object());
817+
auto types = service::ScalarArgument::require<service::TypeModifier::List>("types", schema.as_object());
818+
auto queryType = service::ScalarArgument::require("queryType", schema.as_object());
819+
auto mutationType = service::ScalarArgument::require("mutationType", schema.as_object());
833820

834821
ASSERT_FALSE(types.empty());
835822
ASSERT_TRUE(queryType.is_object());

0 commit comments

Comments
 (0)