[TestInitialize()]
public void Init()
{
lista = new Palavra();
}
[ExpectedException(typeof(InvalidOperationException))]
[TestMethod]
public void lista_de_palavras_esta_vazia()
{
lista.Vazia();
}
[TestMethod]
public void add_palavras_na_lista_e_buscar_topo_da_pilha()
{
//adicionando palavras na lista
String p = "casa";
lista.Salvar(p);
p = "parede";
lista.Salvar(p);
p = "computador";
lista.Salvar(p);
p = "blusa";
lista.Salvar(p);
Assert.IsFalse(lista.IsEmpty, "Após inclusão, IsEmpty, deve ser false");
//buscando topo da pilha
String recuperar = lista.Top() as String;
Assert.AreEqual(p, recuperar);
}
class palavra
public class Palavra
{
private ArrayList _palavras = new ArrayList();
public Boolean IsEmpty
{
get { return this._palavras.Count == 0; }
}
public int getCount()
{
return this._palavras.Count;
}
public void Vazia()
{
if (this.IsEmpty == true)
throw new InvalidOperationException("Lista de Palavras Secretas Está Vazia");
}
public void Salvar(Object palavra_)
{
this._palavras.Insert(0, palavra_);
}
public Object Top()
{
return this._palavras[0];
}
public String pegarPalavra()
{
if (this._palavras.Count == 0) return "";
Random Aleat = new Random();
int NumAleat = Aleat.Next(this._palavras.Count);
return (String)this._palavras[NumAleat];
}
é através da interface que add palavras na lista. Então, para q a lista deixe de estar vazia eu preciso da interface.
Qdo executo os teste sem a referencia a interface, ocorre a exceção "lista vazia"
porém, qdo faço referencia a interface, os testes não rodam.
o motivo é a ausência do uso do mock???