package com.github.fge.grappa.stack;
import org.assertj.core.api.AutoCloseableSoftAssertions;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
public final class ListValueStackTest
extends ValueStackTest
{
@Override
protected ValueStack<Object> newStack()
{
final Collection<Object> values = Arrays.asList(o1, o2, o3, o4, o5, o6);
return new ListValueStack<>(values);
}
@Override
protected void checkNoContents()
{
assertThat(stack.isEmpty()).isTrue();
}
@Override
protected void checkContents(final Object first, final Object... others)
{
final List<Object> values = new ArrayList<>();
values.add(first);
Collections.addAll(values, others);
final int expectedSize = 1 + others.length;
assertThat(stack.size()).isEqualTo(expectedSize);
try (
final AutoCloseableSoftAssertions soft
= new AutoCloseableSoftAssertions();
) {
for (int index = 0; index < expectedSize; index++)
soft.assertThat(stack.peek(index))
.as("element at index %d", index)
.isEqualTo(values.get(index));
}
}
}