selfvalidate_test.cxx 825 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include "abnf/forward.h"
  2. #include <fstream>
  3. #include <gmock/gmock.h>
  4. #include <gtest/gtest.h>
  5. #include <abnf/abnf.h>
  6. using testing::Eq;
  7. inline std::filesystem::path resource_dir() {
  8. return std::filesystem::path(__FILE__).parent_path() / "resources";
  9. }
  10. TEST(ABNFParserTest, LoadsURI) {
  11. std::ifstream in(resource_dir() / "uri.abnf");
  12. abnf::grammar grammar = abnf::parse(in);
  13. std::stringstream ss;
  14. ss << grammar;
  15. EXPECT_THAT(abnf::parse(ss), Eq(grammar));
  16. }
  17. TEST(ABNFParserTest, LoadsDateAndTime) {
  18. std::ifstream in(resource_dir() / "date-time.abnf");
  19. abnf::grammar_group grammar = abnf::parse_group(in);
  20. std::stringstream ss;
  21. ss << grammar;
  22. EXPECT_THAT(abnf::parse_group(ss), Eq(grammar));
  23. }
  24. int main(int argc, char ** argv) {
  25. testing::InitGoogleMock(&argc, argv);
  26. return RUN_ALL_TESTS();
  27. }