| // Copyright 2015 The Weave 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 "src/commands/command_definition.h" | |
| #include <gtest/gtest.h> | |
| namespace weave { | |
| TEST(CommandVisibility, DefaultConstructor) { | |
| CommandDefinition::Visibility visibility; | |
| EXPECT_FALSE(visibility.local); | |
| EXPECT_FALSE(visibility.cloud); | |
| } | |
| TEST(CommandVisibility, InitialState) { | |
| auto visibility = CommandDefinition::Visibility::GetAll(); | |
| EXPECT_TRUE(visibility.local); | |
| EXPECT_TRUE(visibility.cloud); | |
| visibility = CommandDefinition::Visibility::GetLocal(); | |
| EXPECT_TRUE(visibility.local); | |
| EXPECT_FALSE(visibility.cloud); | |
| visibility = CommandDefinition::Visibility::GetCloud(); | |
| EXPECT_FALSE(visibility.local); | |
| EXPECT_TRUE(visibility.cloud); | |
| visibility = CommandDefinition::Visibility::GetNone(); | |
| EXPECT_FALSE(visibility.local); | |
| EXPECT_FALSE(visibility.cloud); | |
| } | |
| TEST(CommandVisibility, FromString) { | |
| CommandDefinition::Visibility visibility; | |
| ASSERT_TRUE(visibility.FromString("local", nullptr)); | |
| EXPECT_TRUE(visibility.local); | |
| EXPECT_FALSE(visibility.cloud); | |
| ASSERT_TRUE(visibility.FromString("cloud", nullptr)); | |
| EXPECT_FALSE(visibility.local); | |
| EXPECT_TRUE(visibility.cloud); | |
| ASSERT_TRUE(visibility.FromString("cloud,local", nullptr)); | |
| EXPECT_TRUE(visibility.local); | |
| EXPECT_TRUE(visibility.cloud); | |
| ASSERT_TRUE(visibility.FromString("none", nullptr)); | |
| EXPECT_FALSE(visibility.local); | |
| EXPECT_FALSE(visibility.cloud); | |
| ASSERT_TRUE(visibility.FromString("all", nullptr)); | |
| EXPECT_TRUE(visibility.local); | |
| EXPECT_TRUE(visibility.cloud); | |
| ASSERT_TRUE(visibility.FromString("", nullptr)); | |
| EXPECT_FALSE(visibility.local); | |
| EXPECT_FALSE(visibility.cloud); | |
| ErrorPtr error; | |
| ASSERT_FALSE(visibility.FromString("cloud,all", &error)); | |
| EXPECT_EQ("invalid_parameter_value", error->GetCode()); | |
| } | |
| TEST(CommandVisibility, ToString) { | |
| EXPECT_EQ("none", CommandDefinition::Visibility::GetNone().ToString()); | |
| EXPECT_EQ("local", CommandDefinition::Visibility::GetLocal().ToString()); | |
| EXPECT_EQ("cloud", CommandDefinition::Visibility::GetCloud().ToString()); | |
| EXPECT_EQ("all", CommandDefinition::Visibility::GetAll().ToString()); | |
| } | |
| TEST(CommandDefinition, Test) { | |
| std::unique_ptr<const ObjectSchema> params{ObjectSchema::Create()}; | |
| std::unique_ptr<const ObjectSchema> progress{ObjectSchema::Create()}; | |
| std::unique_ptr<const ObjectSchema> results{ObjectSchema::Create()}; | |
| const ObjectSchema* param_ptr = params.get(); | |
| const ObjectSchema* progress_ptr = progress.get(); | |
| const ObjectSchema* results_ptr = results.get(); | |
| CommandDefinition def{std::move(params), std::move(progress), | |
| std::move(results)}; | |
| EXPECT_EQ(param_ptr, def.GetParameters()); | |
| EXPECT_EQ(progress_ptr, def.GetProgress()); | |
| EXPECT_EQ(results_ptr, def.GetResults()); | |
| EXPECT_EQ("all", def.GetVisibility().ToString()); | |
| def.SetVisibility(CommandDefinition::Visibility::GetLocal()); | |
| EXPECT_EQ("local", def.GetVisibility().ToString()); | |
| } | |
| } // namespace weave |