1 //
2 // Copyright (C) 2012 The Android Open Source Project
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16
17 #include "shill/service_under_test.h"
18
19 #include <string>
20
21 #include "shill/mock_adaptors.h"
22 #include "shill/property_accessor.h"
23
24 using std::string;
25
26 namespace shill {
27
28 // static
29 const char ServiceUnderTest::kKeyValueStoreProperty[] = "key_value_store";
30 const char ServiceUnderTest::kRpcId[] = "/mock_device_rpc";
31 const char ServiceUnderTest::kStringsProperty[] = "strings";
32 const char ServiceUnderTest::kStorageId[] = "service";
33
ServiceUnderTest(ControlInterface * control_interface,EventDispatcher * dispatcher,Metrics * metrics,Manager * manager)34 ServiceUnderTest::ServiceUnderTest(ControlInterface* control_interface,
35 EventDispatcher* dispatcher,
36 Metrics* metrics,
37 Manager* manager)
38 : Service(control_interface, dispatcher, metrics, manager,
39 Technology::kUnknown) {
40 mutable_store()->RegisterStrings(kStringsProperty, &strings_);
41 mutable_store()->RegisterDerivedKeyValueStore(
42 kKeyValueStoreProperty,
43 KeyValueStoreAccessor(
44 new CustomAccessor<ServiceUnderTest, KeyValueStore>(
45 this, &ServiceUnderTest::GetKeyValueStore,
46 &ServiceUnderTest::SetKeyValueStore)));
47 }
48
~ServiceUnderTest()49 ServiceUnderTest::~ServiceUnderTest() {}
50
GetRpcIdentifier() const51 string ServiceUnderTest::GetRpcIdentifier() const {
52 return ServiceMockAdaptor::kRpcId;
53 }
54
GetDeviceRpcId(Error *) const55 string ServiceUnderTest::GetDeviceRpcId(Error* /*error*/) const {
56 return kRpcId;
57 }
58
GetStorageIdentifier() const59 string ServiceUnderTest::GetStorageIdentifier() const { return kStorageId; }
60
SetKeyValueStore(const KeyValueStore & value,Error * error)61 bool ServiceUnderTest::SetKeyValueStore(
62 const KeyValueStore& value, Error* error) {
63 key_value_store_.Clear();
64 key_value_store_.CopyFrom(value);
65 return true;
66 }
67
GetKeyValueStore(Error * error)68 KeyValueStore ServiceUnderTest::GetKeyValueStore(Error* error) {
69 return key_value_store_;
70 }
71
72 } // namespace shill
73