1 /* 2 * Copyright (c) 2025 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 16 #define LOG_TAG "ObjectServiceStubTest" 17 18 #include "object_service_stub.h" 19 20 #include <gtest/gtest.h> 21 22 #include "ipc_skeleton.h" 23 #include "object_service_impl.h" 24 25 using namespace testing::ext; 26 using namespace OHOS::DistributedObject; 27 namespace OHOS::Test { 28 const std::u16string INTERFACE_TOKEN = u"OHOS.DistributedObject.IObjectService"; 29 constexpr uint32_t CODE_MAX = static_cast<uint32_t>(ObjectCode::OBJECTSTORE_SERVICE_CMD_MAX) + 1; 30 constexpr size_t TEST_SIZE = 1; 31 constexpr uint8_t TEST_DATA = 1; 32 class ObjectServiceStubTest : public testing::Test { 33 public: SetUp()34 void SetUp(){}; TearDown()35 void TearDown(){}; 36 }; 37 std::shared_ptr<ObjectServiceImpl> objectServiceImpl = std::make_shared<ObjectServiceImpl>(); 38 std::shared_ptr<ObjectServiceStub> objectServiceStub = objectServiceImpl; 39 40 /** 41 * @tc.name: OnRemoteRequest001 42 * @tc.desc: OnRemoteRequest data error test 43 * @tc.type: FUNC 44 * @tc.require: 45 * @tc.author: shuxin 46 */ 47 HWTEST_F(ObjectServiceStubTest, ObjectServiceTest001, TestSize.Level1) 48 { 49 uint8_t value = TEST_DATA; 50 uint8_t *data = &value; 51 size_t size = TEST_SIZE; 52 uint32_t code = 0; 53 MessageParcel request; 54 request.WriteInterfaceToken(INTERFACE_TOKEN); 55 request.WriteBuffer(data, size); 56 request.RewindRead(0); 57 MessageParcel reply; 58 auto result = objectServiceStub->OnRemoteRequest(code, request, reply); 59 EXPECT_EQ(result, IPC_STUB_INVALID_DATA_ERR); 60 61 code = CODE_MAX - 1; 62 result = objectServiceStub->OnRemoteRequest(code, request, reply); 63 EXPECT_EQ(result, -1); 64 } 65 66 /** 67 * @tc.name: OnRemoteRequest002 68 * @tc.desc: OnRemoteRequest test 69 * @tc.type: FUNC 70 * @tc.require: 71 * @tc.author: shuxin 72 */ 73 HWTEST_F(ObjectServiceStubTest, ObjectServiceTest002, TestSize.Level1) 74 { 75 uint8_t value = TEST_DATA; 76 uint8_t *data = &value; 77 size_t size = TEST_SIZE; 78 MessageParcel request; 79 request.WriteInterfaceToken(INTERFACE_TOKEN); 80 request.WriteBuffer(data, size); 81 request.RewindRead(0); 82 MessageParcel reply; 83 84 auto result = objectServiceStub->ObjectStoreRevokeSaveOnRemote(request, reply); 85 EXPECT_EQ(result, IPC_STUB_INVALID_DATA_ERR); 86 87 result = objectServiceStub->ObjectStoreRetrieveOnRemote(request, reply); 88 EXPECT_EQ(result, IPC_STUB_INVALID_DATA_ERR); 89 90 result = objectServiceStub->OnSubscribeRequest(request, reply); 91 EXPECT_EQ(result, IPC_STUB_INVALID_DATA_ERR); 92 93 result = objectServiceStub->OnUnsubscribeRequest(request, reply); 94 EXPECT_EQ(result, IPC_STUB_INVALID_DATA_ERR); 95 96 result = objectServiceStub->OnAssetChangedOnRemote(request, reply); 97 EXPECT_EQ(result, IPC_STUB_INVALID_DATA_ERR); 98 99 result = objectServiceStub->ObjectStoreBindAssetOnRemote(request, reply); 100 EXPECT_EQ(result, IPC_STUB_INVALID_DATA_ERR); 101 102 result = objectServiceStub->OnDeleteSnapshot(request, reply); 103 EXPECT_EQ(result, IPC_STUB_INVALID_DATA_ERR); 104 105 result = objectServiceStub->OnIsContinue(request, reply); 106 EXPECT_EQ(result, 0); 107 } 108 }