blob: d7fa00f6c7a0e930c67864acbe9d21b73b1a717f [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "tools/kazoo/output_util.h"
#include "gtest/gtest.h"
namespace {
class OverrideWriter : public Writer {
public:
bool Puts(const std::string& str) override {
data_ += str;
return true;
}
const std::string& data() const { return data_; }
private:
std::string data_;
};
TEST(OutputUtil, CppCopyrightHeader) {
OverrideWriter writer;
EXPECT_EQ(CopyrightHeaderWithCppComments(&writer), true);
ASSERT_TRUE(writer.data().size() > 2);
EXPECT_EQ(writer.data()[0], '/');
EXPECT_EQ(writer.data()[1], '/');
EXPECT_EQ(writer.data().back(), '\n');
}
TEST(OutputUtil, HashCopyrightHeader) {
OverrideWriter writer;
EXPECT_EQ(CopyrightHeaderWithHashComments(&writer), true);
ASSERT_TRUE(writer.data().size() > 1);
EXPECT_EQ(writer.data()[0], '#');
EXPECT_EQ(writer.data().back(), '\n');
}
TEST(OutputUtil, CamelToSnake) {
EXPECT_EQ(CamelToSnake(""), "");
EXPECT_EQ(CamelToSnake("A"), "a");
EXPECT_EQ(CamelToSnake("AA"), "aa");
EXPECT_EQ(CamelToSnake("Aa"), "aa");
EXPECT_EQ(CamelToSnake("Stuff"), "stuff");
EXPECT_EQ(CamelToSnake("SomeThing"), "some_thing");
EXPECT_EQ(CamelToSnake("SomeOtherThing"), "some_other_thing");
EXPECT_EQ(CamelToSnake("someThing"), "some_thing");
EXPECT_EQ(CamelToSnake("ThisIsASCII"), "this_is_ascii");
EXPECT_EQ(CamelToSnake("getHTTPResponseCode"), "get_http_response_code");
EXPECT_EQ(CamelToSnake("get2HTTPResponseCode"), "get2_http_response_code");
EXPECT_EQ(CamelToSnake("HTTPResponseCode"), "http_response_code");
EXPECT_EQ(CamelToSnake("HTTPResponseCodeNEW"), "http_response_code_new");
EXPECT_EQ(CamelToSnake("DoubleIEEE754"), "double_ieee754");
EXPECT_EQ(CamelToSnake("MemVTable"), "mem_vtable");
EXPECT_EQ(CamelToSnake("SList"), "slist");
EXPECT_EQ(CamelToSnake("ThisIsASCII"), "this_is_ascii");
EXPECT_EQ(CamelToSnake("ThisIsASCIIText"), "this_is_ascii_text");
EXPECT_EQ(CamelToSnake("WaCkYsTuFf"), "wa_ck_ys_tu_ff");
EXPECT_EQ(CamelToSnake("WAcK"), "wac_k");
}
} // namespace