Edit

kc3-lang/angle/src/libANGLE/Observer_unittest.cpp

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2018-02-28 00:35:16
    Hash : 6f683089
    Message : Rename signal utils to Observer. This completes the basic refactor to the Observer pattern. Bug: angleproject:2372 Change-Id: I810deff7c7e39baa64b57ce2a79cd732b1af7c34 Reviewed-on: https://chromium-review.googlesource.com/940862 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org>

  • src/libANGLE/Observer_unittest.cpp
  • //
    // Copyright (c) 2016 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    // Observer_unittest:
    //   Unit tests for Observers and related classes.
    
    #include <gtest/gtest.h>
    
    #include "libANGLE/Observer.h"
    
    using namespace angle;
    using namespace testing;
    
    namespace
    {
    
    struct ObserverClass : public ObserverInterface
    {
        void onSubjectStateChange(const gl::Context *context,
                                  SubjectIndex index,
                                  SubjectMessage message) override
        {
            wasNotified = true;
        }
        bool wasNotified = false;
    };
    
    // Test that Observer/Subject state change notifications work.
    TEST(ObserverTest, BasicUsage)
    {
        Subject subject;
        ObserverClass observer;
        ObserverBinding binding(&observer, 0u);
    
        binding.bind(&subject);
        ASSERT_FALSE(observer.wasNotified);
        subject.onStateChange(nullptr, SubjectMessage::STATE_CHANGE);
        ASSERT_TRUE(observer.wasNotified);
    }
    
    }  // anonymous namespace