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/webshare/win/fake_buffer.h"
6 
7 #include "testing/gtest/include/gtest/gtest.h"
8 
9 namespace webshare {
10 
FakeBuffer(UINT32 capacity)11 FakeBuffer::FakeBuffer(UINT32 capacity) : data_(capacity) {}
12 
13 FakeBuffer::~FakeBuffer() = default;
14 
get_Capacity(UINT32 * value)15 IFACEMETHODIMP FakeBuffer::get_Capacity(UINT32* value) {
16   *value = data_.size();
17   return S_OK;
18 }
get_Length(UINT32 * value)19 IFACEMETHODIMP FakeBuffer::get_Length(UINT32* value) {
20   *value = length_;
21   return S_OK;
22 }
put_Length(UINT32 value)23 IFACEMETHODIMP FakeBuffer::put_Length(UINT32 value) {
24   if (value > data_.size()) {
25     ADD_FAILURE() << "put_Length called with a value (" << value
26                   << ") greater than the capacity (" << data_.size() << ")";
27     return E_INVALIDARG;
28   }
29   length_ = value;
30   return S_OK;
31 }
32 
Buffer(byte ** value)33 IFACEMETHODIMP FakeBuffer::Buffer(byte** value) {
34   *value = data_.data();
35   return S_OK;
36 }
37 
38 }  // namespace webshare
39