blob: 437755c48ddc15dbf3b53fedbe2a71ff218dcb89 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_SERVICES_SECURE_CHANNEL_FAKE_CONNECTION_DELEGATE_H_
#define CHROMEOS_SERVICES_SECURE_CHANNEL_FAKE_CONNECTION_DELEGATE_H_
#include "base/macros.h"
#include "chromeos/services/secure_channel/public/mojom/secure_channel.mojom.h"
#include "mojo/public/cpp/bindings/binding_set.h"
namespace chromeos {
namespace secure_channel {
// Test ConnectionDelegate implementation.
class FakeConnectionDelegate : public mojom::ConnectionDelegate {
public:
FakeConnectionDelegate();
~FakeConnectionDelegate() override;
mojom::ConnectionDelegatePtr GenerateInterfacePtr();
void DisconnectGeneratedPtrs();
const base::Optional<mojom::ConnectionAttemptFailureReason>&
connection_attempt_failure_reason() const {
return connection_attempt_failure_reason_;
}
void set_closure_for_next_delegate_callback(base::OnceClosure closure) {
closure_for_next_delegate_callback_ = std::move(closure);
}
const base::Optional<mojom::ChannelPtr>& channel() const { return channel_; }
const base::Optional<mojom::MessageReceiverRequest>&
message_receiver_request() const {
return message_receiver_request_;
}
private:
// mojom::ConnectionDelegate:
void OnConnectionAttemptFailure(
mojom::ConnectionAttemptFailureReason reason) override;
void OnConnection(
mojom::ChannelPtr channel,
mojom::MessageReceiverRequest message_receiver_request) override;
void OnChannelDisconnected(uint32_t disconnection_reason,
const std::string& disconnection_description);
mojo::BindingSet<mojom::ConnectionDelegate> bindings_;
base::OnceClosure closure_for_next_delegate_callback_;
base::Optional<mojom::ConnectionAttemptFailureReason>
connection_attempt_failure_reason_;
base::Optional<mojom::ChannelPtr> channel_;
base::Optional<mojom::MessageReceiverRequest> message_receiver_request_;
DISALLOW_COPY_AND_ASSIGN(FakeConnectionDelegate);
};
} // namespace secure_channel
} // namespace chromeos
#endif // CHROMEOS_SERVICES_SECURE_CHANNEL_FAKE_CONNECTION_DELEGATE_H_