blob: efbb94b836aa8211cf18ec857c6da9e330a265f3 [file] [log] [blame]
// Copyright 2017 The Effcee Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include "gmock/gmock.h"
#include "effcee.h"
namespace {
using effcee::Options;
using ::testing::Eq;
using ::testing::Not;
// Options class
// Prefix property
TEST(Options, DefaultPrefixIsCHECK) {
EXPECT_THAT(Options().prefix(), "CHECK");
}
TEST(Options, SetPrefixReturnsSelf) {
Options options;
const Options& other = options.SetPrefix("");
EXPECT_THAT(&other, &options);
}
TEST(Options, SetPrefixOnceSetsPrefix) {
Options options;
options.SetPrefix("foo");
EXPECT_THAT(options.prefix(), Eq("foo"));
}
TEST(Options, SetPrefixCopiesString) {
Options options;
std::string original("foo");
options.SetPrefix(original);
EXPECT_THAT(options.prefix().data(), Not(Eq(original.data())));
}
TEST(Options, SetPrefixEmptyStringPossible) {
Options options;
// This is not useful.
options.SetPrefix("");
EXPECT_THAT(options.prefix(), Eq(""));
}
TEST(Options, SetPrefixTwiceRetainsLastPrefix) {
Options options;
options.SetPrefix("foo");
options.SetPrefix("bar baz");
EXPECT_THAT(options.prefix(), Eq("bar baz"));
}
// Input name property
TEST(Options, DefaultInputNameIsStdin) {
EXPECT_THAT(Options().input_name(), "<stdin>");
}
TEST(Options, SetInputNameReturnsSelf) {
Options options;
const Options& other = options.SetInputName("");
EXPECT_THAT(&other, &options);
}
TEST(Options, SetInputNameOnceSetsInputName) {
Options options;
options.SetInputName("foo");
EXPECT_THAT(options.input_name(), Eq("foo"));
}
TEST(Options, SetInputNameCopiesString) {
Options options;
std::string original("foo");
options.SetInputName(original);
EXPECT_THAT(options.input_name().data(), Not(Eq(original.data())));
}
TEST(Options, SetInputNameEmptyStringPossible) {
Options options;
options.SetInputName("");
EXPECT_THAT(options.input_name(), Eq(""));
}
TEST(Options, SetInputNameTwiceRetainsLastInputName) {
Options options;
options.SetInputName("foo");
options.SetInputName("bar baz");
EXPECT_THAT(options.input_name(), Eq("bar baz"));
}
// Checks name property
TEST(Options, DefaultChecksNameIsStdin) {
EXPECT_THAT(Options().checks_name(), "<stdin>");
}
TEST(Options, SetChecksNameReturnsSelf) {
Options options;
const Options& other = options.SetChecksName("");
EXPECT_THAT(&other, &options);
}
TEST(Options, SetChecksNameOnceSetsChecksName) {
Options options;
options.SetChecksName("foo");
EXPECT_THAT(options.checks_name(), Eq("foo"));
}
TEST(Options, SetChecksNameCopiesString) {
Options options;
std::string original("foo");
options.SetChecksName(original);
EXPECT_THAT(options.checks_name().data(), Not(Eq(original.data())));
}
TEST(Options, SetChecksNameEmptyStringPossible) {
Options options;
options.SetChecksName("");
EXPECT_THAT(options.checks_name(), Eq(""));
}
TEST(Options, SetChecksNameTwiceRetainsLastChecksName) {
Options options;
options.SetChecksName("foo");
options.SetChecksName("bar baz");
EXPECT_THAT(options.checks_name(), Eq("bar baz"));
}
} // namespace