Edit

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

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2018-03-27 09:44:31
    Hash : d7518622
    Message : Buffer11: Refactor Subject/Observer pattern. Instead of having a direct/static observer distinction, add two messages for 'Contents Changed' and 'Storage Changed'. This makes Buffer11 itself the subject with two different message handling cases in the onSubjectStateChange methods. Bug: angleproject:2389 Change-Id: I645cd4b7cc7ce51cb7f48a01c7fc72939cbe89fe Reviewed-on: https://chromium-review.googlesource.com/957940 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@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::STORAGE_CHANGED);
        ASSERT_TRUE(observer.wasNotified);
    }
    
    }  // anonymous namespace