1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
5 #include <gtest/gtest.h>
6 #include <gmock/gmock-spec-builders.h>
7 #include <mock_not_empty_icnn_network.hpp>
8 #include <mock_iexecutable_network.hpp>
9 #include <mock_iasync_infer_request.hpp>
10 #include <cpp_interfaces/impl/mock_executable_network_internal.hpp>
12 #include <cpp/ie_executable_network.hpp>
14 using namespace ::testing;
16 using namespace InferenceEngine;
17 using namespace InferenceEngine::details;
19 class ExecutableNetworkTests : public ::testing::Test {
21 std::shared_ptr<MockIExecutableNetwork> mock_exe_network;
22 ExecutableNetwork exeNetworkWrapper;
23 std::shared_ptr<MockIInferRequest> mock_async_request;
26 virtual void TearDown() {
29 virtual void SetUp() {
30 mock_exe_network = make_shared<MockIExecutableNetwork>();
31 mock_async_request = make_shared<MockIInferRequest>();
32 exeNetworkWrapper = ExecutableNetwork(mock_exe_network);
37 TEST_F(ExecutableNetworkTests, canForwardCreateInferRequest) {
38 EXPECT_CALL(*mock_exe_network.get(), CreateInferRequest(_, _))
39 .WillOnce(DoAll(SetArgReferee<0>(mock_async_request), Return(OK)));
40 InferRequest actual_async_request;
41 ASSERT_NO_THROW(actual_async_request = exeNetworkWrapper.CreateInferRequest());
42 ASSERT_EQ(mock_async_request, static_cast<IInferRequest::Ptr &>(actual_async_request));
45 TEST_F(ExecutableNetworkTests, throwsIfCreateInferRequestReturnNotOK) {
46 EXPECT_CALL(*mock_exe_network.get(), CreateInferRequest(_, _)).WillOnce(Return(GENERAL_ERROR));
47 ASSERT_THROW(exeNetworkWrapper.CreateInferRequest(), InferenceEngineException);
50 // CreateInferRequestPtr
51 TEST_F(ExecutableNetworkTests, canForwardCreateInferRequestPtr) {
52 EXPECT_CALL(*mock_exe_network.get(), CreateInferRequest(_, _))
53 .WillOnce(DoAll(SetArgReferee<0>(mock_async_request), Return(OK)));
54 InferRequest::Ptr actual_async_request;
55 ASSERT_NO_THROW(actual_async_request = exeNetworkWrapper.CreateInferRequestPtr());
56 ASSERT_EQ(mock_async_request, static_cast<IInferRequest::Ptr &>(*actual_async_request.get()));
59 TEST_F(ExecutableNetworkTests, throwsIfCreateInferRequestPtrReturnNotOK) {
60 EXPECT_CALL(*mock_exe_network.get(), CreateInferRequest(_, _)).WillOnce(Return(GENERAL_ERROR));
61 ASSERT_THROW(exeNetworkWrapper.CreateInferRequest(), InferenceEngineException);