1 // Copyright 2020 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "chrome/browser/chromeos/cert_provisioning/mock_cert_provisioning_worker.h"
6 #include "base/test/values_test_util.h"
7 
8 using base::test::IsJson;
9 using testing::_;
10 using testing::Return;
11 using testing::ReturnRef;
12 
13 namespace chromeos {
14 namespace cert_provisioning {
15 
16 // ================ MockCertProvisioningWorkerFactory ==========================
17 
18 MockCertProvisioningWorkerFactory::MockCertProvisioningWorkerFactory() =
19     default;
20 
21 MockCertProvisioningWorkerFactory::~MockCertProvisioningWorkerFactory() =
22     default;
23 
24 MockCertProvisioningWorker*
ExpectCreateReturnMock(CertScope cert_scope,const CertProfile & cert_profile)25 MockCertProvisioningWorkerFactory::ExpectCreateReturnMock(
26     CertScope cert_scope,
27     const CertProfile& cert_profile) {
28   auto mock_worker = std::make_unique<MockCertProvisioningWorker>();
29   MockCertProvisioningWorker* pointer = mock_worker.get();
30 
31   EXPECT_CALL(*this, Create(cert_scope, _, _, cert_profile, _, _, _, _))
32       .Times(1)
33       .WillOnce(Return(testing::ByMove(std::move(mock_worker))));
34 
35   return pointer;
36 }
37 
38 MockCertProvisioningWorker*
ExpectDeserializeReturnMock(CertScope cert_scope,const base::Value & saved_worker)39 MockCertProvisioningWorkerFactory::ExpectDeserializeReturnMock(
40     CertScope cert_scope,
41     const base::Value& saved_worker) {
42   auto mock_worker = std::make_unique<MockCertProvisioningWorker>();
43   MockCertProvisioningWorker* pointer = mock_worker.get();
44 
45   EXPECT_CALL(*this,
46               Deserialize(cert_scope, _, _, IsJson(saved_worker), _, _, _, _))
47       .Times(1)
48       .WillOnce(Return(testing::ByMove(std::move(mock_worker))));
49 
50   return pointer;
51 }
52 
53 // ================ MockCertProvisioningWorker =================================
54 
MockCertProvisioningWorker()55 MockCertProvisioningWorker::MockCertProvisioningWorker() {
56   static const std::string default_public_key;
57   ON_CALL(*this, GetPublicKey).WillByDefault(ReturnRef(default_public_key));
58 }
59 
60 MockCertProvisioningWorker::~MockCertProvisioningWorker() = default;
61 
SetExpectations(testing::Cardinality do_step_times,bool is_waiting,const CertProfile & cert_profile)62 void MockCertProvisioningWorker::SetExpectations(
63     testing::Cardinality do_step_times,
64     bool is_waiting,
65     const CertProfile& cert_profile) {
66   testing::Mock::VerifyAndClearExpectations(this);
67 
68   cert_profile_ = cert_profile;
69 
70   EXPECT_CALL(*this, DoStep).Times(do_step_times);
71   EXPECT_CALL(*this, IsWaiting).WillRepeatedly(Return(is_waiting));
72   EXPECT_CALL(*this, GetCertProfile).WillRepeatedly(ReturnRef(cert_profile_));
73 }
74 
75 }  // namespace cert_provisioning
76 }  // namespace chromeos
77