Considere a classe que representa a estrutura de dados Fila com o seguinte comportamento:

  • Quando uma Fila está vazia apenas é possível adicionar um elemento à Fila (operação realizada através do método add);
  • Quando a Fila tem elementos, pode-se apenas remover elementos (através do método remove), adicionar elementos (através do método add), e obter o primeiro elemento (através do método peek);
  • No caso particular de a Fila estar cheia não é possível adicionar novos elementos. 

Aplicando o padrão de testes mais apropriado, e descrevendo os vários passos da sua aplicação, desenhe os casos de teste que permitem verificar o comportamento desta classe.