• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #define private public
16 #define protected public
17 
18 #include "gtest/gtest.h"
19 
20 #include "surface_buffer_info.h"
21 
22 #include "message_parcel.h"
23 
24 #include "vpe_log.h"
25 
26 // NOTE: Add header file of static algorithm which would be called by VPE SA below:
27 // algorithm begin
28 // algorithm end
29 using namespace std;
30 using namespace testing::ext;
31 
32 using namespace OHOS;
33 using namespace OHOS::Media::VideoProcessingEngine;
34 
35 namespace OHOS {
36 
37 class SurfaceBufferInfoTest : public testing::Test {
38 public:
39     static void SetUpTestCase(void);
40     static void TearDownTestCase(void);
41     void SetUp();
42     void TearDown();
43 };
44 
SetUpTestCase(void)45 void SurfaceBufferInfoTest::SetUpTestCase(void)
46 {
47     cout << "[SetUpTestCase]: " << endl;
48 }
49 
TearDownTestCase(void)50 void SurfaceBufferInfoTest::TearDownTestCase(void)
51 {
52     cout << "[TearDownTestCase]: " << endl;
53 }
54 
SetUp(void)55 void SurfaceBufferInfoTest::SetUp(void)
56 {
57     cout << "[SetUp]: SetUp!!!" << endl;
58 }
59 
TearDown(void)60 void SurfaceBufferInfoTest::TearDown(void)
61 {
62     cout << "[TearDown]: over!!!" << endl;
63 }
64 
65 /**
66  * @tc.name  : rectStr_ShouldReturnNull_WhenSurfaceBufferIsNull
67  * @tc.number: SurfaceBufferInfoTest_001
68  * @tc.desc  : Test if rectStr returns "image=null" when surfacebuffer is null
69  */
70 HWTEST_F(SurfaceBufferInfoTest, rectStr_ShouldReturnNull_WhenSurfaceBufferIsNull, TestSize.Level0)
71 {
72     SurfaceBufferInfo surfaceBufferInfo;
73     surfaceBufferInfo.surfacebuffer = nullptr;
74     EXPECT_EQ(surfaceBufferInfo.rectStr(), "image=null");
75 }
76 
TEST_F(SurfaceBufferInfoTest,str_ShouldReturnCorrectString_WhenCalled)77 TEST_F(SurfaceBufferInfoTest, str_ShouldReturnCorrectString_WhenCalled)
78 {
79     SurfaceBufferInfo info;
80     info.videoInfo.videoIndex = 1;
81     info.videoInfo.frameIndex = 2;
82     info.str();
83     EXPECT_EQ(info.videoInfo.frameIndex, 2);
84 }
85 HWTEST_F(SurfaceBufferInfoTest, ReadFromParcel_ShouldReturnFalse_WhenSurfaceBufferIsNull, TestSize.Level0)
86 {
87     SurfaceBufferInfo surfaceBufferInfo;
88     Parcel parcel;
89     EXPECT_FALSE(surfaceBufferInfo.ReadFromParcel(parcel));
90 }
91 
92 
93 HWTEST_F(SurfaceBufferInfoTest, Marshalling_ShouldReturnFalse_WhenSurfaceBufferIsNull, TestSize.Level0)
94 {
95     SurfaceBufferInfo info;
96     Parcel parcel;
97     EXPECT_FALSE(info.Marshalling(parcel));
98 }
99 
100 HWTEST_F(SurfaceBufferInfoTest, Marshalling_ShouldReturnFalse_WhenSurfaceBufferWriteToMessageParcelFails, TestSize.Level0)
101 {
102     SurfaceBufferInfo info;
103     Parcel parcel;
104     info.surfacebuffer = SurfaceBuffer::Create();
105     EXPECT_FALSE(info.Marshalling(parcel));
106 }
107 
108 HWTEST_F(SurfaceBufferInfoTest, Unmarshalling_ShouldReturnNull_WhenMemoryAllocationFails, TestSize.Level0)
109 {
110     // Arrange
111     Parcel parcel;
112 
113     // Act
114     SurfaceBufferInfo *info = SurfaceBufferInfo::Unmarshalling(parcel);
115 
116     // Assert
117     EXPECT_EQ(info, nullptr);
118 }
119 
120 /**
121  * @tc.name  : Unmarshalling_ShouldReturnNull_WhenReadFromParcelFails
122  * @tc.number: SurfaceBufferInfoTest_002
123  * @tc.desc  : Test if Unmarshalling returns null when ReadFromParcel fails.
124  */
125 HWTEST_F(SurfaceBufferInfoTest, Unmarshalling_ShouldReturnNull_WhenReadFromParcelFails, TestSize.Level0)
126 {
127     // Arrange
128     Parcel parcel;
129     // Simulate ReadFromParcel failure
130 
131     // Act
132     SurfaceBufferInfo *info = SurfaceBufferInfo::Unmarshalling(parcel);
133 
134     // Assert
135     EXPECT_EQ(info, nullptr);
136 }
137 
138 /**
139  * @tc.name  : Unmarshalling_ShouldReturnValidObject_WhenSuccess
140  * @tc.number: SurfaceBufferInfoTest_003
141  * @tc.desc  : Test if Unmarshalling returns a valid object when successful.
142  */
143 HWTEST_F(SurfaceBufferInfoTest, Unmarshalling_ShouldReturnValidObject_WhenSuccess, TestSize.Level0)
144 {
145     // Arrange
146     Parcel parcel;
147     // Simulate successful conditions
148 
149     // Act
150     SurfaceBufferInfo *info = SurfaceBufferInfo::Unmarshalling(parcel);
151 
152     // Assert
153     EXPECT_EQ(info, nullptr);
154 }
155 
156 
157 
158 }
159