diff options
| author | max-001 <maxsmits21@kpnmail.nl> | 2024-11-21 09:46:06 +0100 | 
|---|---|---|
| committer | max-001 <maxsmits21@kpnmail.nl> | 2024-11-21 09:46:06 +0100 | 
| commit | 7588439db08a671764345764eb05bcb853a90d76 (patch) | |
| tree | 6847d8aa1b1b911dde55d529330c7144c6fafbf0 /src/test/ValueBrokerTest.cpp | |
| parent | ba3b97467ffa9df03d74e87bd567e3dfc521df05 (diff) | |
| parent | 1cc120a0031cfc19c35240da8390d9129b4d75a3 (diff) | |
Merge remote-tracking branch 'origin/master' into max/doxygen
Diffstat (limited to 'src/test/ValueBrokerTest.cpp')
| -rw-r--r-- | src/test/ValueBrokerTest.cpp | 63 | 
1 files changed, 63 insertions, 0 deletions
| diff --git a/src/test/ValueBrokerTest.cpp b/src/test/ValueBrokerTest.cpp new file mode 100644 index 0000000..e6bb058 --- /dev/null +++ b/src/test/ValueBrokerTest.cpp @@ -0,0 +1,63 @@ +#include <gtest/gtest.h> + +#include <crepe/ValueBroker.h> +#include <crepe/util/Proxy.h> + +using namespace std; +using namespace crepe; +using namespace testing; + +class ValueBrokerTest : public Test { +public: +	int read_count = 0; +	int write_count = 0; +	int value = 0; + +	ValueBroker<int> broker{ +		[this](const int & target) -> void { +			this->write_count++; +			this->value = target; +		}, +		[this]() -> const int & { +			this->read_count++; +			return this->value; +		}, +	}; +	Proxy<int> proxy{broker}; + +	void SetUp() override { +		ASSERT_EQ(read_count, 0); +		ASSERT_EQ(write_count, 0); +	} +}; + +TEST_F(ValueBrokerTest, BrokerWrite) { +	broker.set(0); +	EXPECT_EQ(read_count, 0); +	EXPECT_EQ(write_count, 1); +} + +TEST_F(ValueBrokerTest, BrokerRead) { +	broker.get(); +	EXPECT_EQ(read_count, 1); +	EXPECT_EQ(write_count, 0); +} + +TEST_F(ValueBrokerTest, ProxyWrite) { +	proxy = 0; +	EXPECT_EQ(read_count, 0); +	EXPECT_EQ(write_count, 1); +} + +void dummy(int) {} +TEST_F(ValueBrokerTest, ProxyRead) { +	dummy(proxy); +	EXPECT_EQ(read_count, 1); +	EXPECT_EQ(write_count, 0); +} + +TEST_F(ValueBrokerTest, ProxyReadWrite) { +	proxy = proxy; +	ASSERT_EQ(read_count, 1); +	ASSERT_EQ(write_count, 1); +} |