00001 package plp.orientadaObjetos1.testes;
00002
00003 import java.io.FileInputStream;
00004 import java.io.InputStream;
00005
00006 import junit.framework.TestCase;
00007 import plp.orientadaObjetos1.Programa;
00008 import plp.orientadaObjetos1.memoria.ContextoCompilacao;
00009 import plp.orientadaObjetos1.memoria.ContextoExecucao;
00010 import plp.orientadaObjetos1.memoria.colecao.ListaValor;
00011 import plp.orientadaObjetos1.parser.OO1Parser;
00012
00013 public class TesteVariavel extends TestCase {
00014
00015 public void testDeclaracaoLetVar() throws Exception {
00016 InputStream file = new FileInputStream("src/plp/orientadaObjetos1/testes/DecVar.txt");
00017 AllTests.parser = new OO1Parser( file,null);
00018 Programa p = AllTests.parser.processaEntrada();
00019
00020
00021 ListaValor input = new ListaValor();
00022 ContextoCompilacao cc = new ContextoCompilacao( input);
00023 boolean tipoOk = p.checaTipo( cc);
00024
00025
00026 if (tipoOk) {
00027
00028 ContextoExecucao ce = new ContextoExecucao();
00029 ListaValor output = p.executar( ce);
00030 }
00031 else {
00032 fail();
00033 }
00034 }
00035
00036 public void testNewObject() throws Exception {
00037 this.utilTesteTxt("src/plp/orientadaObjetos1/testes/NewObjeto.txt");
00038 }
00039
00040 public void testDuasClasses() throws Exception {
00041 this.utilTesteTxt("src/plp/orientadaObjetos1/testes/DuasClasses.txt");
00042 }
00043
00044 public void testAtributoClasse() throws Exception {
00045 this.utilTesteTxt("src/plp/orientadaObjetos1/testes/AtribClasse.txt");
00046 }
00047 public void testClasseVariosAtributos() throws Exception {
00048 this.utilTesteTxt("src/plp/orientadaObjetos1/testes/ClasseVariosAtributos.txt");
00049 }
00050
00051 public void utilTesteTxt(String fileName) throws Exception {
00052 InputStream file = new FileInputStream(fileName);
00053 AllTests.parser.ReInit(file, null);
00054 Programa p = AllTests.parser.processaEntrada();
00055
00056
00057 ListaValor input = new ListaValor();
00058 ContextoCompilacao cc = new ContextoCompilacao( input);
00059 boolean tipoOk = p.checaTipo( cc);
00060
00061
00062 if (tipoOk) {
00063
00064 ContextoExecucao ce = new ContextoExecucao();
00065 ListaValor output = p.executar( ce);
00066 }
00067 else {
00068 fail();
00069 }
00070 }
00071
00072
00073
00074
00075 }