Skip to content

Commit e4c0773

Browse files
committed
Updated tests
1 parent 6135ed6 commit e4c0773

File tree

1 file changed

+75
-5
lines changed

1 file changed

+75
-5
lines changed

Test/UnitTests/BufferViewTests.cpp

Lines changed: 75 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,78 @@ namespace UnitTests
1414
public:
1515
TEST_METHOD(General)
1616
{
17-
std::string str = "So long as they don't get violent, I want to let everyone say what they wish, "
18-
"for I myself have always said exactly what pleased me. – Albert Einstein";
17+
char quote[] = "When you are presented with a choice between two evils, "
18+
" do not choose the lesser. Choose the exit. - Robert Higgs";
19+
20+
// Default constructor
21+
{
22+
BufferView bview;
23+
Assert::AreEqual(false, bview.operator bool());
24+
Assert::AreEqual(true, bview.IsEmpty());
25+
Assert::AreEqual(true, bview.GetSize() == 0);
26+
Assert::AreEqual(true, bview.GetBytes() == nullptr);
27+
}
28+
29+
// nullptr constructor
30+
{
31+
BufferView bview;
32+
Assert::AreEqual(false, bview.operator bool());
33+
Assert::AreEqual(true, bview.IsEmpty());
34+
Assert::AreEqual(true, bview.GetSize() == 0);
35+
Assert::AreEqual(true, bview.GetBytes() == nullptr);
36+
}
37+
38+
// Copy constructor
39+
{
40+
BufferView bview1(reinterpret_cast<Byte*>(quote), sizeof(quote));
41+
42+
BufferView bview2(bview1);
43+
Assert::AreEqual(true, bview2.operator bool());
44+
Assert::AreEqual(false, bview2.IsEmpty());
45+
Assert::AreEqual(true, bview2.GetSize() == 115);
46+
Assert::AreEqual(true, bview2.GetBytes() != nullptr);
47+
}
48+
49+
// Copy assignment
50+
{
51+
BufferView bview1(reinterpret_cast<Byte*>(quote), sizeof(quote));
52+
53+
BufferView bview2 = bview1;
54+
Assert::AreEqual(true, bview2.operator bool());
55+
Assert::AreEqual(false, bview2.IsEmpty());
56+
Assert::AreEqual(true, bview2.GetSize() == 115);
57+
Assert::AreEqual(true, bview2.GetBytes() != nullptr);
58+
}
59+
60+
// Move constructor
61+
{
62+
BufferView bview1(reinterpret_cast<Byte*>(quote), sizeof(quote));
63+
64+
BufferView bview2(std::move(bview1));
65+
Assert::AreEqual(true, bview2.operator bool());
66+
Assert::AreEqual(false, bview2.IsEmpty());
67+
Assert::AreEqual(true, bview2.GetSize() == 115);
68+
Assert::AreEqual(true, bview2.GetBytes() != nullptr);
69+
}
70+
71+
// Move assignment
72+
{
73+
BufferView bview1(reinterpret_cast<Byte*>(quote), sizeof(quote));
74+
75+
BufferView bview2 = std::move(bview1);
76+
Assert::AreEqual(true, bview2.operator bool());
77+
Assert::AreEqual(false, bview2.IsEmpty());
78+
Assert::AreEqual(true, bview2.GetSize() == 115);
79+
Assert::AreEqual(true, bview2.GetBytes() != nullptr);
80+
}
81+
}
82+
83+
TEST_METHOD(Operations)
84+
{
85+
char quote[] = "So long as they don't get violent, I want to let everyone say what they wish, "
86+
"for I myself have always said exactly what pleased me. – Albert Einstein";
1987

20-
Buffer buf(reinterpret_cast<Byte*>(str.data()), str.size());
88+
Buffer buf(reinterpret_cast<Byte*>(quote), sizeof(quote));
2189

2290
BufferView bview(buf);
2391
Assert::AreEqual(true, bview.operator bool());
@@ -27,8 +95,8 @@ namespace UnitTests
2795
bview.RemoveFirst(3);
2896
Assert::AreEqual(true, (bview.GetSize() == buf.GetSize() - 3));
2997

30-
bview.RemoveLast(9);
31-
Assert::AreEqual(true, (bview.GetSize() == buf.GetSize() - 12));
98+
bview.RemoveLast(10);
99+
Assert::AreEqual(true, (bview.GetSize() == buf.GetSize() - 13));
32100

33101
Assert::AreEqual(true, (bview[0] == Byte{ 'l' }));
34102
Assert::AreEqual(true, (bview[bview.GetSize() - 1] == Byte{ 't' }));
@@ -38,6 +106,7 @@ namespace UnitTests
38106

39107
auto bviewsub = bview.GetSubView(0, 4);
40108
Assert::AreEqual(true, (bviewsub.GetSize() == 4));
109+
Assert::AreEqual(true, std::memcmp(bviewsub.GetBytes(), "long", bviewsub.GetSize()) == 0);
41110

42111
Assert::AreEqual(true, (bviewsub == bviewf));
43112

@@ -46,6 +115,7 @@ namespace UnitTests
46115

47116
auto bviewsub2 = bview.GetSubView(bview.GetSize()-6, 6);
48117
Assert::AreEqual(true, (bviewsub2.GetSize() == 6));
118+
Assert::AreEqual(true, std::memcmp(bviewsub2.GetBytes(), "Albert", bviewsub2.GetSize()) == 0);
49119

50120
Assert::AreEqual(true, (bviewsub2 == bviewl));
51121

0 commit comments

Comments
 (0)