|
|
@@ -64,10 +64,27 @@ class AutoGrowPanelTest extends SwingTestCase {
|
|
|
|
|
|
@Test
|
|
|
void testAlwaysHasAtLeastOneComponent() {
|
|
|
+ AutoGrowPanel<MockComponent, MockComponent> panel =
|
|
|
+ new AutoGrowPanel<>(this::mocked, m -> m);
|
|
|
+
|
|
|
+ assertThat(panel.getComponents(), arrayWithSize(1));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void testInitialComponentAssignedFirstPosition() {
|
|
|
+ @SuppressWarnings("unused")
|
|
|
+ AutoGrowPanel<MockComponent, MockComponent> panel =
|
|
|
+ new AutoGrowPanel<>(this::mocked, m -> m);
|
|
|
+
|
|
|
+ verify(internal.get(0)).setListPosition(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void testSetModelCallsListPositionEvenIfNoChange() {
|
|
|
AutoGrowPanel<MockComponent, MockComponent> panel = create();
|
|
|
|
|
|
assertThat(panel.getComponents(), arrayWithSize(1));
|
|
|
- verify(shared, never()).add(any());
|
|
|
+ verify(internal.get(0), times(2)).setListPosition(0);
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
@@ -78,19 +95,39 @@ class AutoGrowPanelTest extends SwingTestCase {
|
|
|
verify(shared, never()).add(any());
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ void testResetsListPositionAfterSettingModel() {
|
|
|
+ @SuppressWarnings("unused")
|
|
|
+ AutoGrowPanel<MockComponent, MockComponent> panel = create(mocked(), mocked());
|
|
|
+
|
|
|
+ // Last element because my helper function pre-installs into the internal list
|
|
|
+ verify(internal.get(2)).setListPosition(0);
|
|
|
+ verify(internal.get(2)).setListPosition(2);
|
|
|
+ }
|
|
|
+
|
|
|
@Test
|
|
|
void testEnteringContentTriggersNewRow() {
|
|
|
AutoGrowPanel<MockComponent, MockComponent> panel = create();
|
|
|
- getTestFrame().add(panel);
|
|
|
|
|
|
internal.get(0).setText("A");
|
|
|
assertThat(panel.getComponents(), arrayWithSize(2));
|
|
|
|
|
|
internal.get(1).setText("B");
|
|
|
assertThat(panel.getComponents(), arrayWithSize(3));
|
|
|
+
|
|
|
verify(shared, times(2)).add(any());
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ void testEnteringContentAssignsCorrectListPosition() {
|
|
|
+ @SuppressWarnings("unused")
|
|
|
+ AutoGrowPanel<MockComponent, MockComponent> panel = create();
|
|
|
+
|
|
|
+ internal.get(0).setText("A");
|
|
|
+
|
|
|
+ verify(internal.get(1)).setListPosition(1);
|
|
|
+ }
|
|
|
+
|
|
|
@Test
|
|
|
void testEnteringEmptyContentDoesNotTrigger() {
|
|
|
AutoGrowPanel<MockComponent, MockComponent> panel = create();
|
|
|
@@ -114,6 +151,19 @@ class AutoGrowPanelTest extends SwingTestCase {
|
|
|
verify(shared, times(1)).remove(0);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void testEmptyingContentAdjustsAllPositions() {
|
|
|
+ final MockComponent mock = spy(new MockComponent("A"));
|
|
|
+
|
|
|
+ @SuppressWarnings("unused")
|
|
|
+ AutoGrowPanel<MockComponent, MockComponent> panel = create(mock);
|
|
|
+
|
|
|
+ mock.setText("");
|
|
|
+
|
|
|
+ verify(internal.get(0), times(2)).setListPosition(0);
|
|
|
+ }
|
|
|
+
|
|
|
@Test
|
|
|
void testRemovingSomeContentDoesntClear() throws BadLocationException {
|
|
|
final MockComponent mock = spy(new MockComponent("AB"));
|