|
14 | 14 | #include <scratch/sound_p.h> |
15 | 15 | #include <timermock.h> |
16 | 16 | #include <clockmock.h> |
| 17 | +#include <audioinputmock.h> |
17 | 18 | #include <audiooutputmock.h> |
18 | 19 | #include <audioplayermock.h> |
| 20 | +#include <audioloudnessmock.h> |
19 | 21 | #include <monitorhandlermock.h> |
20 | 22 | #include <blocksectionmock.h> |
21 | 23 | #include <thread> |
|
27 | 29 | // TODO: Remove this |
28 | 30 | #include "blocks/variableblocks.h" |
29 | 31 | #include "blocks/listblocks.h" |
| 32 | +#include "blocks/eventblocks.h" |
30 | 33 |
|
31 | 34 | using namespace libscratchcpp; |
32 | 35 |
|
@@ -1936,24 +1939,64 @@ TEST(EngineTest, EdgeActivatedHats) |
1936 | 1939 | Stage *stage = engine->stage(); |
1937 | 1940 | ASSERT_TRUE(stage); |
1938 | 1941 |
|
1939 | | - ASSERT_VAR(stage, "test"); |
1940 | | - auto var = GET_VAR(stage, "test"); |
1941 | | - ASSERT_EQ(var->value().toInt(), 0); |
| 1942 | + ASSERT_VAR(stage, "test1"); |
| 1943 | + auto var1 = GET_VAR(stage, "test1"); |
| 1944 | + ASSERT_VAR(stage, "test2"); |
| 1945 | + auto var2 = GET_VAR(stage, "test2"); |
| 1946 | + |
| 1947 | + ASSERT_EQ(var1->value().toInt(), 0); |
| 1948 | + ASSERT_EQ(var2->value().toInt(), 0); |
1942 | 1949 |
|
1943 | 1950 | TimerMock timer; |
| 1951 | + AudioInputMock audioInput; |
1944 | 1952 | engine->setTimer(&timer); |
| 1953 | + EventBlocks::audioInput = &audioInput; |
| 1954 | + auto audioLoudness = std::make_shared<AudioLoudnessMock>(); |
| 1955 | + EXPECT_CALL(audioInput, audioLoudness()).WillRepeatedly(Return(audioLoudness)); |
1945 | 1956 |
|
1946 | 1957 | EXPECT_CALL(timer, value()).WillOnce(Return(5)); |
| 1958 | + EXPECT_CALL(*audioLoudness, getLoudness()).WillOnce(Return(1)); |
1947 | 1959 | engine->step(); |
1948 | | - ASSERT_EQ(var->value().toInt(), 0); |
| 1960 | + ASSERT_EQ(var1->value().toInt(), 0); |
| 1961 | + ASSERT_EQ(var2->value().toInt(), 0); |
1949 | 1962 |
|
1950 | 1963 | EXPECT_CALL(timer, value()).WillOnce(Return(10)); |
| 1964 | + EXPECT_CALL(*audioLoudness, getLoudness()).WillOnce(Return(9)); |
1951 | 1965 | engine->step(); |
1952 | | - ASSERT_EQ(var->value().toInt(), 0); |
| 1966 | + ASSERT_EQ(var1->value().toInt(), 0); |
| 1967 | + ASSERT_EQ(var2->value().toInt(), 1); |
1953 | 1968 |
|
1954 | 1969 | EXPECT_CALL(timer, value()).WillOnce(Return(10.2)); |
| 1970 | + EXPECT_CALL(*audioLoudness, getLoudness()).WillOnce(Return(10)); |
| 1971 | + engine->step(); |
| 1972 | + ASSERT_EQ(var1->value().toInt(), 1); |
| 1973 | + ASSERT_EQ(var2->value().toInt(), 1); |
| 1974 | + |
| 1975 | + EXPECT_CALL(timer, value()).WillOnce(Return(15)); |
| 1976 | + EXPECT_CALL(*audioLoudness, getLoudness()).WillOnce(Return(2)); |
1955 | 1977 | engine->step(); |
1956 | | - ASSERT_EQ(var->value().toInt(), 1); |
| 1978 | + ASSERT_EQ(var1->value().toInt(), 1); |
| 1979 | + ASSERT_EQ(var2->value().toInt(), 1); |
| 1980 | + |
| 1981 | + EXPECT_CALL(timer, value()).WillOnce(Return(12)); |
| 1982 | + EXPECT_CALL(*audioLoudness, getLoudness()).WillOnce(Return(8)); |
| 1983 | + engine->step(); |
| 1984 | + ASSERT_EQ(var1->value().toInt(), 1); |
| 1985 | + ASSERT_EQ(var2->value().toInt(), 2); |
| 1986 | + |
| 1987 | + EXPECT_CALL(timer, value()).WillOnce(Return(8)); |
| 1988 | + EXPECT_CALL(*audioLoudness, getLoudness()).WillOnce(Return(3)); |
| 1989 | + engine->step(); |
| 1990 | + ASSERT_EQ(var1->value().toInt(), 1); |
| 1991 | + ASSERT_EQ(var2->value().toInt(), 2); |
| 1992 | + |
| 1993 | + EXPECT_CALL(timer, value()).WillOnce(Return(11)); |
| 1994 | + EXPECT_CALL(*audioLoudness, getLoudness()).WillOnce(Return(15)); |
| 1995 | + engine->step(); |
| 1996 | + ASSERT_EQ(var1->value().toInt(), 2); |
| 1997 | + ASSERT_EQ(var2->value().toInt(), 3); |
| 1998 | + |
| 1999 | + EventBlocks::audioInput = nullptr; |
1957 | 2000 | } |
1958 | 2001 |
|
1959 | 2002 | TEST(EngineTest, UserAgent) |
|
0 commit comments