|
|
@@ -21,14 +21,10 @@ struct MockRandomImpl : public engine::detail::random_impl {
|
|
|
|
|
|
class RollerTest : public ::testing::Test {
|
|
|
protected:
|
|
|
- void SetUp() override {
|
|
|
- pRandom = std::make_shared<MockRandomImpl>();
|
|
|
- }
|
|
|
-
|
|
|
- void TearDown() override {
|
|
|
- pRandom.reset();
|
|
|
- }
|
|
|
-
|
|
|
+ void SetUp() override { pRandom = std::make_shared<MockRandomImpl>(); }
|
|
|
+
|
|
|
+ void TearDown() override { pRandom.reset(); }
|
|
|
+
|
|
|
protected:
|
|
|
std::shared_ptr<MockRandomImpl> pRandom;
|
|
|
};
|
|
|
@@ -42,9 +38,11 @@ TEST_F(RollerTest, CanConstructNoThrow) {
|
|
|
|
|
|
TEST_F(RollerTest, RollsOncePerDie) {
|
|
|
dice::dice mydice{1, {{dice::sign::ZERO, 3, 4}}, {{dice::sign::PLUS, 1}}};
|
|
|
- EXPECT_CALL(*pRandom, exclusive(4)).WillOnce(Return(2)).WillOnce(Return(1))
|
|
|
+ EXPECT_CALL(*pRandom, exclusive(4))
|
|
|
+ .WillOnce(Return(2))
|
|
|
+ .WillOnce(Return(1))
|
|
|
.WillOnce(Return(3));
|
|
|
-
|
|
|
+
|
|
|
auto roll = dice::roller{pRandom}(mydice);
|
|
|
EXPECT_THAT(roll, SizeIs(1));
|
|
|
EXPECT_THAT(roll[0].sub_rolls, SizeIs(1));
|
|
|
@@ -54,7 +52,7 @@ TEST_F(RollerTest, RollsOncePerDie) {
|
|
|
TEST_F(RollerTest, DoesNotRollForConstants) {
|
|
|
dice::dice mydice{1, {}, {{dice::sign::PLUS, 1}}};
|
|
|
EXPECT_CALL(*pRandom, exclusive(_)).Times(0);
|
|
|
-
|
|
|
+
|
|
|
auto roll = dice::roller{pRandom}(mydice);
|
|
|
EXPECT_THAT(roll, SizeIs(1));
|
|
|
EXPECT_THAT(roll[0].sub_rolls, SizeIs(0));
|
|
|
@@ -64,9 +62,11 @@ TEST_F(RollerTest, DoesNotRollForConstants) {
|
|
|
|
|
|
TEST_F(RollerTest, InjectsDCIntoRollObjects) {
|
|
|
using test = dice::difficulty_class::test;
|
|
|
- dice::dice mydice{1, {{dice::sign::ZERO, 3, 4}},
|
|
|
- {{dice::sign::PLUS, 1}}, {test::Less, 20}};
|
|
|
- EXPECT_CALL(*pRandom, exclusive(4)).WillOnce(Return(2)).WillOnce(Return(1))
|
|
|
+ dice::dice mydice{
|
|
|
+ 1, {{dice::sign::ZERO, 3, 4}}, {{dice::sign::PLUS, 1}}, {test::Less, 20}};
|
|
|
+ EXPECT_CALL(*pRandom, exclusive(4))
|
|
|
+ .WillOnce(Return(2))
|
|
|
+ .WillOnce(Return(1))
|
|
|
.WillOnce(Return(3));
|
|
|
|
|
|
auto roll = dice::roller{pRandom}(mydice);
|
|
|
@@ -75,21 +75,18 @@ TEST_F(RollerTest, InjectsDCIntoRollObjects) {
|
|
|
}
|
|
|
|
|
|
TEST(DiceRollTest, OperatorIntSumsElements) {
|
|
|
- dice::dice_roll const roll{
|
|
|
- {{dice::sign::ZERO, {3, 2, 4}}},
|
|
|
- {{dice::sign::PLUS, 1}}};
|
|
|
+ dice::dice_roll const roll{{{dice::sign::ZERO, {3, 2, 4}}},
|
|
|
+ {{dice::sign::PLUS, 1}}};
|
|
|
// 3 + 2 + 4 + 1 = 10
|
|
|
EXPECT_THAT(int(roll), Eq(10));
|
|
|
}
|
|
|
|
|
|
TEST(DiceRollTest, OperatorIntWithDCReturnsOneOrZero) {
|
|
|
using test = dice::difficulty_class::test;
|
|
|
- dice::dice_roll roll{
|
|
|
- {{dice::sign::ZERO, {3, 2, 4}}},
|
|
|
- {{dice::sign::PLUS, 1}},
|
|
|
- {test::Less, 10}
|
|
|
- };
|
|
|
-
|
|
|
+ dice::dice_roll roll{{{dice::sign::ZERO, {3, 2, 4}}},
|
|
|
+ {{dice::sign::PLUS, 1}},
|
|
|
+ {test::Less, 10}};
|
|
|
+
|
|
|
EXPECT_THAT(int(roll), Eq(0));
|
|
|
--roll.modifiers[0].value;
|
|
|
EXPECT_THAT(int(roll), Eq(1));
|