OLD | NEW |
1 // Copyright (c) 2009 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium OS Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <string> | 5 #include <string> |
6 #include <gtest/gtest.h> | 6 #include <gtest/gtest.h> |
7 #include "update_engine/action.h" | 7 #include "update_engine/action.h" |
8 #include "update_engine/action_processor.h" | 8 #include "update_engine/action_processor.h" |
9 | 9 |
10 using std::string; | 10 using std::string; |
(...skipping 14 matching lines...) Expand all Loading... |
25 // This is a simple Action class for testing. | 25 // This is a simple Action class for testing. |
26 struct ActionProcessorTestAction : public Action<ActionProcessorTestAction> { | 26 struct ActionProcessorTestAction : public Action<ActionProcessorTestAction> { |
27 typedef string InputObjectType; | 27 typedef string InputObjectType; |
28 typedef string OutputObjectType; | 28 typedef string OutputObjectType; |
29 ActionPipe<string>* in_pipe() { return in_pipe_.get(); } | 29 ActionPipe<string>* in_pipe() { return in_pipe_.get(); } |
30 ActionPipe<string>* out_pipe() { return out_pipe_.get(); } | 30 ActionPipe<string>* out_pipe() { return out_pipe_.get(); } |
31 ActionProcessor* processor() { return processor_; } | 31 ActionProcessor* processor() { return processor_; } |
32 void PerformAction() {} | 32 void PerformAction() {} |
33 void CompleteAction() { | 33 void CompleteAction() { |
34 ASSERT_TRUE(processor()); | 34 ASSERT_TRUE(processor()); |
35 processor()->ActionComplete(this, true); | 35 processor()->ActionComplete(this, kActionCodeSuccess); |
36 } | 36 } |
37 string Type() const { return "ActionProcessorTestAction"; } | 37 string Type() const { return "ActionProcessorTestAction"; } |
38 }; | 38 }; |
39 | 39 |
40 class ActionProcessorTest : public ::testing::Test { }; | 40 class ActionProcessorTest : public ::testing::Test { }; |
41 | 41 |
42 // This test creates two simple Actions and sends a message via an ActionPipe | 42 // This test creates two simple Actions and sends a message via an ActionPipe |
43 // from one to the other. | 43 // from one to the other. |
44 TEST(ActionProcessorTest, SimpleTest) { | 44 TEST(ActionProcessorTest, SimpleTest) { |
45 ActionProcessorTestAction action; | 45 ActionProcessorTestAction action; |
(...skipping 12 matching lines...) Expand all Loading... |
58 } | 58 } |
59 | 59 |
60 namespace { | 60 namespace { |
61 class MyActionProcessorDelegate : public ActionProcessorDelegate { | 61 class MyActionProcessorDelegate : public ActionProcessorDelegate { |
62 public: | 62 public: |
63 explicit MyActionProcessorDelegate(const ActionProcessor* processor) | 63 explicit MyActionProcessorDelegate(const ActionProcessor* processor) |
64 : processor_(processor), | 64 : processor_(processor), |
65 processing_done_called_(false), | 65 processing_done_called_(false), |
66 processing_stopped_called_(false), | 66 processing_stopped_called_(false), |
67 action_completed_called_(false), | 67 action_completed_called_(false), |
68 action_completed_success_(false) {} | 68 action_exit_code_(kActionCodeError) {} |
69 | 69 |
70 virtual void ProcessingDone(const ActionProcessor* processor, bool success) { | 70 virtual void ProcessingDone(const ActionProcessor* processor, |
| 71 ActionExitCode code) { |
71 EXPECT_EQ(processor_, processor); | 72 EXPECT_EQ(processor_, processor); |
72 EXPECT_FALSE(processing_done_called_); | 73 EXPECT_FALSE(processing_done_called_); |
73 processing_done_called_ = true; | 74 processing_done_called_ = true; |
74 } | 75 } |
75 virtual void ProcessingStopped(const ActionProcessor* processor) { | 76 virtual void ProcessingStopped(const ActionProcessor* processor) { |
76 EXPECT_EQ(processor_, processor); | 77 EXPECT_EQ(processor_, processor); |
77 EXPECT_FALSE(processing_stopped_called_); | 78 EXPECT_FALSE(processing_stopped_called_); |
78 processing_stopped_called_ = true; | 79 processing_stopped_called_ = true; |
79 } | 80 } |
80 virtual void ActionCompleted(ActionProcessor* processor, | 81 virtual void ActionCompleted(ActionProcessor* processor, |
81 AbstractAction* action, | 82 AbstractAction* action, |
82 bool success) { | 83 ActionExitCode code) { |
83 EXPECT_EQ(processor_, processor); | 84 EXPECT_EQ(processor_, processor); |
84 EXPECT_FALSE(action_completed_called_); | 85 EXPECT_FALSE(action_completed_called_); |
85 action_completed_called_ = true; | 86 action_completed_called_ = true; |
86 action_completed_success_ = success; | 87 action_exit_code_ = code; |
87 } | 88 } |
88 | 89 |
89 const ActionProcessor* processor_; | 90 const ActionProcessor* processor_; |
90 bool processing_done_called_; | 91 bool processing_done_called_; |
91 bool processing_stopped_called_; | 92 bool processing_stopped_called_; |
92 bool action_completed_called_; | 93 bool action_completed_called_; |
93 bool action_completed_success_; | 94 ActionExitCode action_exit_code_; |
94 }; | 95 }; |
95 } // namespace {} | 96 } // namespace {} |
96 | 97 |
97 TEST(ActionProcessorTest, DelegateTest) { | 98 TEST(ActionProcessorTest, DelegateTest) { |
98 ActionProcessorTestAction action; | 99 ActionProcessorTestAction action; |
99 ActionProcessor action_processor; | 100 ActionProcessor action_processor; |
100 MyActionProcessorDelegate delegate(&action_processor); | 101 MyActionProcessorDelegate delegate(&action_processor); |
101 action_processor.set_delegate(&delegate); | 102 action_processor.set_delegate(&delegate); |
102 | 103 |
103 action_processor.EnqueueAction(&action); | 104 action_processor.EnqueueAction(&action); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 action.CompleteAction(); | 167 action.CompleteAction(); |
167 | 168 |
168 action_processor.EnqueueAction(&action); | 169 action_processor.EnqueueAction(&action); |
169 action_processor.StartProcessing(); | 170 action_processor.StartProcessing(); |
170 action_processor.StopProcessing(); | 171 action_processor.StopProcessing(); |
171 | 172 |
172 action_processor.set_delegate(NULL); | 173 action_processor.set_delegate(NULL); |
173 } | 174 } |
174 | 175 |
175 } // namespace chromeos_update_engine | 176 } // namespace chromeos_update_engine |
OLD | NEW |