// // Copyright 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 #include "libANGLE/Observer.h" using namespace angle; using namespace testing; namespace { struct ObserverClass : public ObserverInterface { void onSubjectStateChange(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(SubjectMessage::SubjectChanged); ASSERT_TRUE(observer.wasNotified); } } // anonymous namespace