-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathExampleUnitTests.cpp
More file actions
56 lines (45 loc) · 1.55 KB
/
Copy pathExampleUnitTests.cpp
File metadata and controls
56 lines (45 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include "ExampleUnitTests.h"
using ::testing::Return;
using ::testing::_;
using ::testing::SetArgPointee;
using ::testing::SaveArg;
using namespace Base::Unit::Test;
const HANDLE FILE_HANDLE = reinterpret_cast<HANDLE>(0x12345);
void
Base::Unit::Test::ExampleUnitTests::SetUp()
{
ON_CALL(m_masterMock, myCreateFileA(_, _, _, _, _, _, _))
.WillByDefault(Return(FILE_HANDLE));
DWORD size = 0;
ON_CALL(m_masterMock, myWriteFile(FILE_HANDLE, _, _, _, _))
.WillByDefault(
DoAll(
SaveArg<2>(&size),
SetArgPointee<3>(size),
Return(TRUE)));
ON_CALL(m_masterMock, myCloseHandle(FILE_HANDLE))
.WillByDefault(Return(TRUE));
}
TEST_F(ExampleUnitTests, ThrowsExceptionWhenCreateFileFails)
{
EXPECT_CALL(m_masterMock, myCreateFileA(_, _, _, _, _, _, _))
.WillRepeatedly(Return(INVALID_HANDLE_VALUE));
ASSERT_THROW(m_unit.run(), std::exception);
}
TEST_F(ExampleUnitTests, ThrowsExceptionWhenWriteFileFails)
{
EXPECT_CALL(m_masterMock, myWriteFile(FILE_HANDLE, _, _, _, _))
.WillRepeatedly(Return(FALSE));
ASSERT_THROW(m_unit.run(), std::exception);
}
TEST_F(ExampleUnitTests, ThrowsExceptionWhenWriteFileDoesntWriteEnoughBytes)
{
DWORD size = 0;
EXPECT_CALL(m_masterMock, myWriteFile(FILE_HANDLE, _, _, _, _))
.WillRepeatedly(
DoAll(
SaveArg<2>(&size),
SetArgPointee<3>(size-1),
Return(TRUE)));
ASSERT_THROW(m_unit.run(), std::exception);
}