TEST( PilaCharTest, obtenerTopeNoModificaLaPila ) {

    Pila<char> pila;

    pila.apilar('X');

    ASSERT_FALSE( pila.estaVacia() );
    ASSERT_EQ( 'X', pila.obtenerTope() );
    ASSERT_EQ( 'X', pila.obtenerTope() );
    ASSERT_EQ( 'X', pila.obtenerTope() );

    ASSERT_EQ( 'X', pila.desapilar() );
    ASSERT_TRUE( pila.estaVacia() );
}
TEST( PilaCharTest, obtenerTope ) {

    Pila<char> pila;

    pila.apilar('X');
    pila.apilar('Y');
    pila.apilar('Z');

    ASSERT_FALSE( pila.estaVacia() );
    ASSERT_EQ( 'Z', pila.obtenerTope() );
}
TEST( PilaCharTest, obtenerTopeConLaPilaVaciaLanzaExcepcion ) {

    Pila<char> pila;

    ASSERT_THROW(pila.obtenerTope(), std::string) << "Pila vacĂ­a";
}