33 using children_t = std::vector<std::unique_ptr<ViewItem>>;
41 std::pair<children_t, expected_t>
test_data(
int ncolumns)
43 auto vector_of_unique = TestUtils::create_row<ViewItem, TestItem>(ncolumns);
45 return std::make_pair(std::move(vector_of_unique), std::move(vector_of_pointers));
58 EXPECT_EQ(view_item.rowCount(), 0);
59 EXPECT_EQ(view_item.columnCount(), 0);
60 EXPECT_EQ(view_item.row(), -1);
61 EXPECT_EQ(view_item.column(), -1);
62 EXPECT_EQ(view_item.parent(),
nullptr);
63 EXPECT_THROW(view_item.child(0, 0), std::runtime_error);
64 EXPECT_EQ(view_item.item(),
nullptr);
65 EXPECT_EQ(view_item.item_role(), 0);
72 auto [children, expected] = test_data( 1);
76 view_item.appendRow(std::move(children));
79 EXPECT_EQ(view_item.rowCount(), 1);
80 EXPECT_EQ(view_item.columnCount(), 1);
81 EXPECT_EQ(view_item.child(0, 0), expected[0]);
82 EXPECT_THROW(view_item.child(0, 1), std::runtime_error);
85 EXPECT_EQ(expected[0]->parent(), &view_item);
86 EXPECT_EQ(expected[0]->row(), 0);
87 EXPECT_EQ(expected[0]->column(), 0);
94 auto [children, expected] = test_data( 1);
98 view_item.appendRow(std::move(children));
99 view_item.removeRow(0);
102 EXPECT_EQ(view_item.rowCount(), 0);
103 EXPECT_EQ(view_item.columnCount(), 0);
111 auto [children_row0, expected_row0] = test_data( 2);
112 auto [children_row1, expected_row1] = test_data( 2);
116 view_item.appendRow(std::move(children_row0));
117 view_item.appendRow(std::move(children_row1));
119 EXPECT_EQ(view_item.rowCount(), 2);
120 EXPECT_EQ(view_item.columnCount(), 2);
121 EXPECT_EQ(view_item.child(0, 0), expected_row0[0]);
122 EXPECT_EQ(view_item.child(0, 1), expected_row0[1]);
123 EXPECT_EQ(view_item.child(1, 0), expected_row1[0]);
124 EXPECT_EQ(view_item.child(1, 1), expected_row1[1]);
125 EXPECT_THROW(view_item.child(2, 2), std::runtime_error);
128 EXPECT_EQ(expected_row0[0]->parent(), &view_item);
129 EXPECT_EQ(expected_row0[1]->parent(), &view_item);
130 EXPECT_EQ(expected_row1[0]->parent(), &view_item);
131 EXPECT_EQ(expected_row1[1]->parent(), &view_item);
134 EXPECT_EQ(expected_row0[0]->row(), 0);
135 EXPECT_EQ(expected_row0[1]->row(), 0);
136 EXPECT_EQ(expected_row1[0]->row(), 1);
137 EXPECT_EQ(expected_row1[1]->row(), 1);
138 EXPECT_EQ(expected_row0[0]->column(), 0);
139 EXPECT_EQ(expected_row0[1]->column(), 1);
140 EXPECT_EQ(expected_row1[0]->column(), 0);
141 EXPECT_EQ(expected_row1[1]->column(), 1);
144 auto [children_row2, expected_row2] = test_data( 1);
145 EXPECT_THROW(view_item.appendRow(std::move(children_row2)), std::runtime_error);
146 EXPECT_EQ(view_item.rowCount(), 2);
147 EXPECT_EQ(view_item.columnCount(), 2);
155 auto [children_row0, expected_row0] = test_data( 2);
156 auto [children_row1, expected_row1] = test_data( 2);
157 auto [children_row2, expected_row2] = test_data( 2);
161 view_item.appendRow(std::move(children_row0));
162 view_item.appendRow(std::move(children_row1));
163 view_item.insertRow(1, std::move(children_row2));
165 EXPECT_EQ(view_item.rowCount(), 3);
166 EXPECT_EQ(view_item.columnCount(), 2);
167 EXPECT_EQ(view_item.child(0, 0), expected_row0[0]);
168 EXPECT_EQ(view_item.child(0, 1), expected_row0[1]);
169 EXPECT_EQ(view_item.child(1, 0), expected_row2[0]);
170 EXPECT_EQ(view_item.child(1, 1), expected_row2[1]);
171 EXPECT_EQ(view_item.child(2, 0), expected_row1[0]);
172 EXPECT_EQ(view_item.child(2, 1), expected_row1[1]);
175 EXPECT_EQ(expected_row0[0]->parent(), &view_item);
176 EXPECT_EQ(expected_row0[1]->parent(), &view_item);
177 EXPECT_EQ(expected_row1[0]->parent(), &view_item);
178 EXPECT_EQ(expected_row1[1]->parent(), &view_item);
179 EXPECT_EQ(expected_row2[0]->parent(), &view_item);
180 EXPECT_EQ(expected_row2[1]->parent(), &view_item);
183 EXPECT_EQ(expected_row0[0]->row(), 0);
184 EXPECT_EQ(expected_row0[1]->row(), 0);
185 EXPECT_EQ(expected_row1[0]->row(), 2);
186 EXPECT_EQ(expected_row1[1]->row(), 2);
187 EXPECT_EQ(expected_row2[0]->row(), 1);
188 EXPECT_EQ(expected_row2[1]->row(), 1);
189 EXPECT_EQ(expected_row0[0]->column(), 0);
190 EXPECT_EQ(expected_row0[1]->column(), 1);
191 EXPECT_EQ(expected_row1[0]->column(), 0);
192 EXPECT_EQ(expected_row1[1]->column(), 1);
193 EXPECT_EQ(expected_row2[0]->column(), 0);
194 EXPECT_EQ(expected_row2[1]->column(), 1);
197 view_item.removeRow(1);
198 EXPECT_EQ(view_item.child(0, 0), expected_row0[0]);
199 EXPECT_EQ(view_item.child(0, 1), expected_row0[1]);
200 EXPECT_EQ(view_item.child(1, 0), expected_row1[0]);
201 EXPECT_EQ(view_item.child(1, 1), expected_row1[1]);
208 auto [children, expected] = test_data( 1);
211 view_item.appendRow(std::move(children));
214 EXPECT_EQ(view_item.rowCount(), 0);
215 EXPECT_EQ(view_item.columnCount(), 0);
220 auto [children_row0, expected_row0] = test_data( 2);
221 auto [children_row1, expected_row1] = test_data( 2);
224 view_item.appendRow(std::move(children_row0));
225 view_item.appendRow(std::move(children_row1));
227 std::vector<ViewItem*> expected;
228 std::copy(expected_row0.begin(), expected_row0.end(), std::back_inserter(expected));
229 std::copy(expected_row1.begin(), expected_row1.end(), std::back_inserter(expected));
231 EXPECT_EQ(view_item.children(), expected);
Represents the view of SessionItem's data in a single cell of ViewModel.
Tests for ViewItem class.
std::vector< std::unique_ptr< ViewItem > > children_t
std::vector< ViewItem * > expected_t
std::pair< children_t, expected_t > test_data(int ncolumns)
Helper function to get two vectors, each ncolumns length, in the form of a pair.
void removeRow(QGridLayout *layout, int row, bool deleteWidgets=true)
Removes row from grid layout (important: doesn't change row count).
materialitems.h Collection of materials to populate MaterialModel.
auto create_pointers(const std::vector< std::unique_ptr< T >> &vec)
Creates vector of pointers from vector of unique_ptr.
TEST_F(ViewItemTest, initialState)
Initial state of RefViewItem.