| // Copyright 2020 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 "src/developer/shell/console/executor.h" |
| |
| #include <gmock/gmock.h> |
| #include <gtest/gtest.h> |
| |
| #include "src/developer/shell/console/scoped_interpreter.h" |
| #include "src/lib/testing/loop_fixture/test_loop_fixture.h" |
| |
| namespace { |
| |
| using Executor = gtest::TestLoopFixture; |
| |
| std::unique_ptr<shell::console::Command> MakeCommand(std::string line) { |
| auto command = std::make_unique<shell::console::Command>(); |
| command->Parse(std::move(line)); |
| return command; |
| } |
| |
| TEST_F(Executor, ExecuteVariableDecl) { |
| shell::console::ScopedInterpreter interpreter; |
| shell::console::Executor exec(interpreter.client()); |
| shell::console::Err e = exec.Execute(MakeCommand("var a = 2"), nullptr); |
| EXPECT_EQ(ZX_ERR_NEXT, e.code); |
| } |
| |
| TEST_F(Executor, ExecuteObjectDecl) { |
| shell::console::ScopedInterpreter interpreter; |
| shell::console::Executor exec(interpreter.client()); |
| shell::console::Err e1 = exec.Execute(MakeCommand("var a = { }"), nullptr); |
| EXPECT_EQ(ZX_ERR_NEXT, e1.code); |
| shell::console::Err e2 = exec.Execute(MakeCommand("var a = { a:1 }"), nullptr); |
| EXPECT_EQ(ZX_ERR_NEXT, e2.code); |
| shell::console::Err e3 = exec.Execute(MakeCommand("var a = { a:1, b:2 }"), nullptr); |
| EXPECT_EQ(ZX_ERR_NEXT, e3.code); |
| } |
| |
| } // namespace |