1c29fa5a6Sopenharmony_ci/*
2c29fa5a6Sopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
3c29fa5a6Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4c29fa5a6Sopenharmony_ci * you may not use this file except in compliance with the License.
5c29fa5a6Sopenharmony_ci * You may obtain a copy of the License at
6c29fa5a6Sopenharmony_ci *
7c29fa5a6Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
8c29fa5a6Sopenharmony_ci *
9c29fa5a6Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10c29fa5a6Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11c29fa5a6Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12c29fa5a6Sopenharmony_ci * See the License for the specific language governing permissions and
13c29fa5a6Sopenharmony_ci * limitations under the License.
14c29fa5a6Sopenharmony_ci */
15c29fa5a6Sopenharmony_ci
16c29fa5a6Sopenharmony_ci#include <gtest/gtest.h>
17c29fa5a6Sopenharmony_ci
18c29fa5a6Sopenharmony_ci#include "stream_buffer.h"
19c29fa5a6Sopenharmony_ci
20c29fa5a6Sopenharmony_cinamespace OHOS {
21c29fa5a6Sopenharmony_cinamespace MMI {
22c29fa5a6Sopenharmony_cinamespace {
23c29fa5a6Sopenharmony_ciusing namespace testing::ext;
24c29fa5a6Sopenharmony_ci} // namespace
25c29fa5a6Sopenharmony_ci
26c29fa5a6Sopenharmony_ciclass StreamBufferTest : public testing::Test {
27c29fa5a6Sopenharmony_cipublic:
28c29fa5a6Sopenharmony_ci    static void SetUpTestCase(void) {}
29c29fa5a6Sopenharmony_ci    static void TearDownTestCase(void) {}
30c29fa5a6Sopenharmony_ci};
31c29fa5a6Sopenharmony_ci
32c29fa5a6Sopenharmony_ciclass StreamBufferUnitTest : public StreamBuffer {
33c29fa5a6Sopenharmony_cipublic:
34c29fa5a6Sopenharmony_ci    const char *ReadBufUnitTest() const
35c29fa5a6Sopenharmony_ci    {
36c29fa5a6Sopenharmony_ci        return ReadBuf();
37c29fa5a6Sopenharmony_ci    }
38c29fa5a6Sopenharmony_ci    const char *WriteBufUnitTest() const
39c29fa5a6Sopenharmony_ci    {
40c29fa5a6Sopenharmony_ci        return WriteBuf();
41c29fa5a6Sopenharmony_ci    }
42c29fa5a6Sopenharmony_ci    bool CloneUnitTest(const StreamBuffer& buf)
43c29fa5a6Sopenharmony_ci    {
44c29fa5a6Sopenharmony_ci        return Clone(buf);
45c29fa5a6Sopenharmony_ci    }
46c29fa5a6Sopenharmony_ci};
47c29fa5a6Sopenharmony_ci
48c29fa5a6Sopenharmony_ci
49c29fa5a6Sopenharmony_ci/**
50c29fa5a6Sopenharmony_ci * @tc.name:read_Type1_001
51c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer read
52c29fa5a6Sopenharmony_ci * @tc.type: FUNC
53c29fa5a6Sopenharmony_ci * @tc.require:
54c29fa5a6Sopenharmony_ci */
55c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, read_Type1_001, TestSize.Level1)
56c29fa5a6Sopenharmony_ci{
57c29fa5a6Sopenharmony_ci    char buf[] = "";
58c29fa5a6Sopenharmony_ci    size_t size = 4;
59c29fa5a6Sopenharmony_ci
60c29fa5a6Sopenharmony_ci    StreamBuffer bufObj;
61c29fa5a6Sopenharmony_ci    StreamBuffer bufObjTmp(bufObj);
62c29fa5a6Sopenharmony_ci    bool retResult = bufObj.Read(buf, size);
63c29fa5a6Sopenharmony_ci    EXPECT_FALSE(retResult);
64c29fa5a6Sopenharmony_ci}
65c29fa5a6Sopenharmony_ci
66c29fa5a6Sopenharmony_ci/**
67c29fa5a6Sopenharmony_ci * @tc.name:read_Type1_002
68c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer read
69c29fa5a6Sopenharmony_ci * @tc.type: FUNC
70c29fa5a6Sopenharmony_ci * @tc.require:
71c29fa5a6Sopenharmony_ci */
72c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, read_Type1_002, TestSize.Level1)
73c29fa5a6Sopenharmony_ci{
74c29fa5a6Sopenharmony_ci    char buf[] = "1234";
75c29fa5a6Sopenharmony_ci    size_t size = 4;
76c29fa5a6Sopenharmony_ci
77c29fa5a6Sopenharmony_ci    StreamBuffer bufObj;
78c29fa5a6Sopenharmony_ci    StreamBuffer bufObjTmp(bufObj);
79c29fa5a6Sopenharmony_ci    bool retResult = bufObj.Read(buf, size);
80c29fa5a6Sopenharmony_ci    EXPECT_FALSE(retResult);
81c29fa5a6Sopenharmony_ci}
82c29fa5a6Sopenharmony_ci
83c29fa5a6Sopenharmony_ci/**
84c29fa5a6Sopenharmony_ci * @tc.name:read_Type2_001
85c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer read
86c29fa5a6Sopenharmony_ci * @tc.type: FUNC
87c29fa5a6Sopenharmony_ci * @tc.require:
88c29fa5a6Sopenharmony_ci */
89c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, read_Type2_001, TestSize.Level1)
90c29fa5a6Sopenharmony_ci{
91c29fa5a6Sopenharmony_ci    std::string buf = "";
92c29fa5a6Sopenharmony_ci
93c29fa5a6Sopenharmony_ci    StreamBuffer bufObj;
94c29fa5a6Sopenharmony_ci    StreamBuffer bufObjTmp(bufObj);
95c29fa5a6Sopenharmony_ci    bool retResult = bufObj.Read(buf);
96c29fa5a6Sopenharmony_ci    ASSERT_FALSE(retResult);
97c29fa5a6Sopenharmony_ci}
98c29fa5a6Sopenharmony_ci
99c29fa5a6Sopenharmony_ci/**
100c29fa5a6Sopenharmony_ci * @tc.name:read_Type2_002
101c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer read
102c29fa5a6Sopenharmony_ci * @tc.type: FUNC
103c29fa5a6Sopenharmony_ci * @tc.require:
104c29fa5a6Sopenharmony_ci */
105c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, read_Type2_002, TestSize.Level1)
106c29fa5a6Sopenharmony_ci{
107c29fa5a6Sopenharmony_ci    std::string buf = "Stream Data";
108c29fa5a6Sopenharmony_ci
109c29fa5a6Sopenharmony_ci    StreamBuffer bufObj;
110c29fa5a6Sopenharmony_ci    StreamBuffer bufObjTmp(bufObj);
111c29fa5a6Sopenharmony_ci    bool retResult = bufObj.Read(buf);
112c29fa5a6Sopenharmony_ci    ASSERT_FALSE(retResult);
113c29fa5a6Sopenharmony_ci}
114c29fa5a6Sopenharmony_ci
115c29fa5a6Sopenharmony_ci/**
116c29fa5a6Sopenharmony_ci * @tc.name:read_Type3_001
117c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer read
118c29fa5a6Sopenharmony_ci * @tc.type: FUNC
119c29fa5a6Sopenharmony_ci * @tc.require:
120c29fa5a6Sopenharmony_ci */
121c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, read_Type3_001, TestSize.Level1)
122c29fa5a6Sopenharmony_ci{
123c29fa5a6Sopenharmony_ci    StreamBuffer buf;
124c29fa5a6Sopenharmony_ci
125c29fa5a6Sopenharmony_ci    StreamBuffer bufObj;
126c29fa5a6Sopenharmony_ci    StreamBuffer bufObjTmp(bufObj);
127c29fa5a6Sopenharmony_ci    bool retResult = bufObj.Read(buf);
128c29fa5a6Sopenharmony_ci    ASSERT_FALSE(retResult);
129c29fa5a6Sopenharmony_ci}
130c29fa5a6Sopenharmony_ci
131c29fa5a6Sopenharmony_ci/**
132c29fa5a6Sopenharmony_ci * @tc.name:write_Type1_001
133c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer write
134c29fa5a6Sopenharmony_ci * @tc.type: FUNC
135c29fa5a6Sopenharmony_ci * @tc.require:
136c29fa5a6Sopenharmony_ci */
137c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, write_Type1_001, TestSize.Level1)
138c29fa5a6Sopenharmony_ci{
139c29fa5a6Sopenharmony_ci    std::string buf;
140c29fa5a6Sopenharmony_ci
141c29fa5a6Sopenharmony_ci    StreamBuffer streamBuffer;
142c29fa5a6Sopenharmony_ci    bool retResult = streamBuffer.Write(buf);
143c29fa5a6Sopenharmony_ci    ASSERT_TRUE(retResult);
144c29fa5a6Sopenharmony_ci}
145c29fa5a6Sopenharmony_ci
146c29fa5a6Sopenharmony_ci/**
147c29fa5a6Sopenharmony_ci * @tc.name:write_Type1_002
148c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer write
149c29fa5a6Sopenharmony_ci * @tc.type: FUNC
150c29fa5a6Sopenharmony_ci * @tc.require:
151c29fa5a6Sopenharmony_ci */
152c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, write_Type1_002, TestSize.Level1)
153c29fa5a6Sopenharmony_ci{
154c29fa5a6Sopenharmony_ci    std::string buf = "stream data";
155c29fa5a6Sopenharmony_ci
156c29fa5a6Sopenharmony_ci    StreamBuffer streamBuffer;
157c29fa5a6Sopenharmony_ci    bool retResult = streamBuffer.Write(buf);
158c29fa5a6Sopenharmony_ci    ASSERT_TRUE(retResult);
159c29fa5a6Sopenharmony_ci}
160c29fa5a6Sopenharmony_ci
161c29fa5a6Sopenharmony_ci/**
162c29fa5a6Sopenharmony_ci * @tc.name:write_Type2_001
163c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer write
164c29fa5a6Sopenharmony_ci * @tc.type: FUNC
165c29fa5a6Sopenharmony_ci * @tc.require:
166c29fa5a6Sopenharmony_ci */
167c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, write_Type2_001, TestSize.Level1)
168c29fa5a6Sopenharmony_ci{
169c29fa5a6Sopenharmony_ci    StreamBuffer buf;
170c29fa5a6Sopenharmony_ci    StreamBuffer streamBuffer;
171c29fa5a6Sopenharmony_ci    bool retResult = streamBuffer.Write(buf);
172c29fa5a6Sopenharmony_ci    ASSERT_FALSE(retResult);
173c29fa5a6Sopenharmony_ci}
174c29fa5a6Sopenharmony_ci
175c29fa5a6Sopenharmony_ci/**
176c29fa5a6Sopenharmony_ci * @tc.name:write_Type3_001
177c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer write
178c29fa5a6Sopenharmony_ci * @tc.type: FUNC
179c29fa5a6Sopenharmony_ci * @tc.require:
180c29fa5a6Sopenharmony_ci */
181c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, write_Type3_001, TestSize.Level1)
182c29fa5a6Sopenharmony_ci{
183c29fa5a6Sopenharmony_ci    char buf[100];
184c29fa5a6Sopenharmony_ci    size_t size = 0;
185c29fa5a6Sopenharmony_ci
186c29fa5a6Sopenharmony_ci    StreamBuffer streamBuffer;
187c29fa5a6Sopenharmony_ci    bool retResult = streamBuffer.Write(buf, size);
188c29fa5a6Sopenharmony_ci    EXPECT_FALSE(retResult);
189c29fa5a6Sopenharmony_ci}
190c29fa5a6Sopenharmony_ci
191c29fa5a6Sopenharmony_ci/**
192c29fa5a6Sopenharmony_ci * @tc.name:write_Type3_002
193c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer write
194c29fa5a6Sopenharmony_ci * @tc.type: FUNC
195c29fa5a6Sopenharmony_ci * @tc.require:
196c29fa5a6Sopenharmony_ci */
197c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, write_Type3_002, TestSize.Level1)
198c29fa5a6Sopenharmony_ci{
199c29fa5a6Sopenharmony_ci    char buf[100] = "stream data type3 001";
200c29fa5a6Sopenharmony_ci    size_t size = 10;
201c29fa5a6Sopenharmony_ci
202c29fa5a6Sopenharmony_ci    StreamBuffer streamBuffer;
203c29fa5a6Sopenharmony_ci    bool retResult = streamBuffer.Write(buf, size);
204c29fa5a6Sopenharmony_ci    EXPECT_TRUE(retResult);
205c29fa5a6Sopenharmony_ci}
206c29fa5a6Sopenharmony_ci
207c29fa5a6Sopenharmony_ci/**
208c29fa5a6Sopenharmony_ci * @tc.name:Data
209c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer data
210c29fa5a6Sopenharmony_ci * @tc.type: FUNC
211c29fa5a6Sopenharmony_ci * @tc.require:
212c29fa5a6Sopenharmony_ci */
213c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, Data, TestSize.Level1)
214c29fa5a6Sopenharmony_ci{
215c29fa5a6Sopenharmony_ci    StreamBuffer bufObj;
216c29fa5a6Sopenharmony_ci    const char *retResult = bufObj.Data();
217c29fa5a6Sopenharmony_ci    EXPECT_TRUE(retResult);
218c29fa5a6Sopenharmony_ci}
219c29fa5a6Sopenharmony_ci
220c29fa5a6Sopenharmony_ci/**
221c29fa5a6Sopenharmony_ci * @tc.name:Size_001
222c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer size
223c29fa5a6Sopenharmony_ci * @tc.type: FUNC
224c29fa5a6Sopenharmony_ci * @tc.require:
225c29fa5a6Sopenharmony_ci */
226c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, Size_001, TestSize.Level1)
227c29fa5a6Sopenharmony_ci{
228c29fa5a6Sopenharmony_ci    StreamBuffer streamBuffer;
229c29fa5a6Sopenharmony_ci    ASSERT_FALSE(streamBuffer.Size() != 0);
230c29fa5a6Sopenharmony_ci}
231c29fa5a6Sopenharmony_ci
232c29fa5a6Sopenharmony_ci/**
233c29fa5a6Sopenharmony_ci * @tc.name:operatorLeft
234c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer operator left
235c29fa5a6Sopenharmony_ci * @tc.type: FUNC
236c29fa5a6Sopenharmony_ci * @tc.require:
237c29fa5a6Sopenharmony_ci */
238c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, operatorLeft, TestSize.Level1)
239c29fa5a6Sopenharmony_ci{
240c29fa5a6Sopenharmony_ci    int32_t val = 111;
241c29fa5a6Sopenharmony_ci    StreamBuffer buf;
242c29fa5a6Sopenharmony_ci    StreamBuffer streamBufferSrc;
243c29fa5a6Sopenharmony_ci    bool retResult = streamBufferSrc.Write(buf);
244c29fa5a6Sopenharmony_ci    ASSERT_FALSE(retResult);
245c29fa5a6Sopenharmony_ci    streamBufferSrc << val;
246c29fa5a6Sopenharmony_ci}
247c29fa5a6Sopenharmony_ci
248c29fa5a6Sopenharmony_ci/**
249c29fa5a6Sopenharmony_ci * @tc.name:operatorRight
250c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer operator right
251c29fa5a6Sopenharmony_ci * @tc.type: FUNC
252c29fa5a6Sopenharmony_ci * @tc.require:
253c29fa5a6Sopenharmony_ci */
254c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, operatorRight, TestSize.Level1)
255c29fa5a6Sopenharmony_ci{
256c29fa5a6Sopenharmony_ci    int32_t val = 111;
257c29fa5a6Sopenharmony_ci    StreamBuffer buf;
258c29fa5a6Sopenharmony_ci    StreamBuffer streamBufferSrc;
259c29fa5a6Sopenharmony_ci    bool retResult = streamBufferSrc.Write(buf);
260c29fa5a6Sopenharmony_ci    ASSERT_FALSE(retResult);
261c29fa5a6Sopenharmony_ci    streamBufferSrc << val;
262c29fa5a6Sopenharmony_ci    streamBufferSrc >> val;
263c29fa5a6Sopenharmony_ci}
264c29fa5a6Sopenharmony_ci
265c29fa5a6Sopenharmony_ci/**
266c29fa5a6Sopenharmony_ci * @tc.name:ReadBuf
267c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer read buffer
268c29fa5a6Sopenharmony_ci * @tc.type: FUNC
269c29fa5a6Sopenharmony_ci * @tc.require:
270c29fa5a6Sopenharmony_ci */
271c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, ReadBuf, TestSize.Level1)
272c29fa5a6Sopenharmony_ci{
273c29fa5a6Sopenharmony_ci    StreamBufferUnitTest bufObj;
274c29fa5a6Sopenharmony_ci    const char *retResult = bufObj.ReadBufUnitTest();
275c29fa5a6Sopenharmony_ci    EXPECT_NE(retResult, nullptr);
276c29fa5a6Sopenharmony_ci}
277c29fa5a6Sopenharmony_ci
278c29fa5a6Sopenharmony_ci/**
279c29fa5a6Sopenharmony_ci * @tc.name:WriteBuf
280c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer write buffer
281c29fa5a6Sopenharmony_ci * @tc.type: FUNC
282c29fa5a6Sopenharmony_ci * @tc.require:
283c29fa5a6Sopenharmony_ci */
284c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, WriteBuf, TestSize.Level1)
285c29fa5a6Sopenharmony_ci{
286c29fa5a6Sopenharmony_ci    StreamBufferUnitTest bufObj;
287c29fa5a6Sopenharmony_ci    const char *retResult = bufObj.WriteBufUnitTest();
288c29fa5a6Sopenharmony_ci    EXPECT_NE(retResult, nullptr);
289c29fa5a6Sopenharmony_ci}
290c29fa5a6Sopenharmony_ci
291c29fa5a6Sopenharmony_ci/**
292c29fa5a6Sopenharmony_ci * @tc.name:Clone
293c29fa5a6Sopenharmony_ci * @tc.desc:Verify stream buffer clone
294c29fa5a6Sopenharmony_ci * @tc.type: FUNC
295c29fa5a6Sopenharmony_ci * @tc.require:
296c29fa5a6Sopenharmony_ci */
297c29fa5a6Sopenharmony_ciHWTEST_F(StreamBufferTest, Clone, TestSize.Level1)
298c29fa5a6Sopenharmony_ci{
299c29fa5a6Sopenharmony_ci    const StreamBuffer buf;
300c29fa5a6Sopenharmony_ci
301c29fa5a6Sopenharmony_ci    StreamBufferUnitTest bufObj;
302c29fa5a6Sopenharmony_ci    bool retResult = bufObj.CloneUnitTest(buf);
303c29fa5a6Sopenharmony_ci    EXPECT_FALSE(retResult);
304c29fa5a6Sopenharmony_ci}
305c29fa5a6Sopenharmony_ci} // namespace MMI
306c29fa5a6Sopenharmony_ci} // namespace OHOS
307