xref: /llvm-project/clang-tools-extra/clangd/unittests/xpc/ConversionTests.cpp (revision b804eef09052cf40e79aa2ed8a23f2f39e2dda1b)
1 //===-- ConversionTests.cpp  --------------------------*- C++ -*-----------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "xpc/Conversion.h"
10 #include "gtest/gtest.h"
11 
12 #include <limits>
13 
14 namespace clang {
15 namespace clangd {
16 namespace {
17 
18 using namespace llvm;
19 
TEST(JsonXpcConversionTest,JsonToXpcToJson)20 TEST(JsonXpcConversionTest, JsonToXpcToJson) {
21 
22   for (auto &testcase :
23        {json::Value(false), json::Value(3.14), json::Value(42),
24         json::Value(-100), json::Value("foo"), json::Value(""),
25         json::Value("123"), json::Value(" "),
26         json::Value{true, "foo", nullptr, 42},
27         json::Value(json::Object{
28             {"a", true}, {"b", "foo"}, {"c", nullptr}, {"d", 42}})}) {
29     EXPECT_TRUE(testcase == xpcToJson(jsonToXpc(testcase))) << testcase;
30   }
31 }
32 
33 } // namespace
34 } // namespace clangd
35 } // namespace clang
36