Home | History | Annotate | Download | only in test
      1 // Copyright 2015 The Weave 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 #ifndef LIBWEAVE_INCLUDE_WEAVE_TEST_FAKE_STREAM_H_
      6 #define LIBWEAVE_INCLUDE_WEAVE_TEST_FAKE_STREAM_H_
      7 
      8 #include <weave/stream.h>
      9 
     10 #include <string>
     11 
     12 #include <base/time/time.h>
     13 #include <gmock/gmock.h>
     14 
     15 namespace weave {
     16 
     17 namespace provider {
     18 class TaskRunner;
     19 }
     20 
     21 namespace test {
     22 
     23 class FakeStream : public Stream {
     24  public:
     25   explicit FakeStream(provider::TaskRunner* task_runner);
     26   FakeStream(provider::TaskRunner* task_runner, const std::string& read_data);
     27 
     28   void ExpectWritePacketString(base::TimeDelta, const std::string& data);
     29   void AddReadPacketString(base::TimeDelta, const std::string& data);
     30 
     31   void CancelPendingOperations() override;
     32   void Read(void* buffer,
     33             size_t size_to_read,
     34             const ReadCallback& callback) override;
     35   void Write(const void* buffer,
     36              size_t size_to_write,
     37              const WriteCallback& callback) override;
     38 
     39  private:
     40   provider::TaskRunner* task_runner_{nullptr};
     41   std::string write_data_;
     42   std::string read_data_;
     43 };
     44 
     45 }  // namespace test
     46 }  // namespace weave
     47 
     48 #endif  // LIBWEAVE_INCLUDE_WEAVE_TEST_FAKE_STREAM_H_
     49