1 /* 2 * Copyright 2018 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #include <compositionengine/impl/CompositionEngine.h> 18 #include <gtest/gtest.h> 19 #include <renderengine/mock/RenderEngine.h> 20 21 #include "MockHWComposer.h" 22 23 namespace android::compositionengine { 24 namespace { 25 26 using ::testing::StrictMock; 27 28 class CompositionEngineTest : public testing::Test { 29 public: 30 ~CompositionEngineTest() override; 31 mock::HWComposer* mHwc = new StrictMock<mock::HWComposer>(); 32 renderengine::mock::RenderEngine* mRenderEngine = 33 new StrictMock<renderengine::mock::RenderEngine>(); 34 impl::CompositionEngine mEngine; 35 }; 36 37 CompositionEngineTest::~CompositionEngineTest() = default; 38 39 TEST_F(CompositionEngineTest, canInstantiateCompositionEngine) { 40 auto engine = impl::createCompositionEngine(); 41 EXPECT_TRUE(engine.get() != nullptr); 42 } 43 44 TEST_F(CompositionEngineTest, canSetHWComposer) { 45 mEngine.setHwComposer(std::unique_ptr<android::HWComposer>(mHwc)); 46 47 EXPECT_EQ(mHwc, &mEngine.getHwComposer()); 48 } 49 50 TEST_F(CompositionEngineTest, canSetRenderEngine) { 51 mEngine.setRenderEngine(std::unique_ptr<renderengine::RenderEngine>(mRenderEngine)); 52 53 EXPECT_EQ(mRenderEngine, &mEngine.getRenderEngine()); 54 } 55 56 } // namespace 57 } // namespace android::compositionengine 58