Package javango.contrib.admin.tests

Source Code of javango.contrib.admin.tests.AdminTest

package javango.contrib.admin.tests;

import java.io.CharArrayWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

import com.google.inject.Injector;
import com.google.inject.Module;

import javango.contrib.freemarker.FreemarkerResponse;

import javango.contrib.hibernate.HibernateManager;
import javango.contrib.hibernate.HibernateModule;
import javango.contrib.hibernate.HibernateUtil;
import javango.contrib.admin.tests.Poll;
import javango.db.Manager;
import javango.http.HttpResponse;
import javango.http.HttpResponseRedirect;
import javango.test.Client;
import junit.framework.TestCase;

public class AdminTest extends TestCase {
 
  Client c;
  Injector injector;
  @Override
  protected void setUp() throws Exception {
    super.setUp();
    List<Module> modules = new ArrayList<Module>();
    modules.add(new HibernateModule());
    injector = new javango.contrib.admin.tests.AdminTestSettings().createInjector(modules);
   
    Configuration cfg = injector.getInstance(HibernateUtil.class).getConfiguration();
    new SchemaExport(cfg).drop(false, true);
    new SchemaExport(cfg).create(false, true);
   
    c = new Client(injector);
  }
 
  @Override
  protected void tearDown() throws Exception {
    super.tearDown();
    c.close();
  }



  public void fixture(int ct) throws Exception {
    injector.getInstance(HibernateUtil.class).getSession().beginTransaction();
    for (int i=0; i<ct; i++) {
      Poll p = new Poll();
      p.setQuestion("AdminTestQuestion : " + i );
      p.setPubDate(new Date());
      Manager dao = new HibernateManager(injector.getInstance(HibernateUtil.class), Poll.class);
   
      dao.save(p);
    }
    injector.getInstance(HibernateUtil.class).getSession().getTransaction().commit();
  }

  public void testAdminHomePage() throws Exception {
    HttpResponse r = c.get("admin/");
    assertTrue(r instanceof FreemarkerResponse);
    FreemarkerResponse fr = (FreemarkerResponse)r;
    Writer writer = new CharArrayWriter();
    fr.renderToWriter(writer);
    //System.out.println(writer.toString());
    assertTrue(writer.toString().contains("<a href=\"./javango.contrib.admin.tests.Poll/\">Poll</a>"));
    assertTrue(writer.toString().contains("<a href=\"./javango.contrib.admin.tests.Choice/\">Your Choice</a>"));

  }
 
  public void testPollList() throws Exception {
    HttpResponse r = c.get("admin/javango.contrib.admin.tests.Poll/");
    assertTrue(r instanceof FreemarkerResponse);
    FreemarkerResponse fr = (FreemarkerResponse)r;
    Writer writer = new CharArrayWriter();
    fr.renderToWriter(writer);
    //System.out.println(writer.toString());
    assertTrue(writer.toString().contains("No Results"));
   
    fixture(1);
    r = c.get("admin/javango.contrib.admin.tests.Poll/");
    assertTrue(r instanceof FreemarkerResponse);
    fr = (FreemarkerResponse)r;
    writer = new CharArrayWriter();
    fr.renderToWriter(writer);
    assertTrue(writer.toString().contains("AdminTestQuestion : 0"));
  }
 
  public void testAddPoll() throws Exception {
    HttpResponse r = c.get("admin/javango.contrib.admin.tests.Poll/add/");
    assertTrue(r instanceof FreemarkerResponse);
    FreemarkerResponse fr = (FreemarkerResponse)r;
   
    Writer writer = new CharArrayWriter();
    fr.renderToWriter(writer);
    System.out.println(writer.toString());
    String expected =
        "<tr><th><label for='id_pubDate'>Pub Date</label></th><td><input id=\"id_pubDate\" type=\"text\" name=\"pubDate\" /></td></tr>\n" +
        "<tr><th><label for='id_question'>Question</label></th><td><input maxlength=\"255\" id=\"id_question\" type=\"text\" name=\"question\" /></td></tr>\n";
   
    // TODO This is not 100% correct as the form could possibly be in this order even without the fieldset
    assertTrue(writer.toString().contains(expected));
   
    Map<String, String[]> params = new HashMap<String, String[]>();
    params.put("question", new String[] {"Do you like cheese?"});
    params.put("pubDate", new String[] {"01/02/2008"});
    r = c.post("admin/javango.contrib.admin.tests.Poll/add/", params);
    assertEquals(HttpResponseRedirect.class, r.getClass());
   
    r = c.get("admin/javango.contrib.admin.tests.Poll/");
    assertTrue(r instanceof FreemarkerResponse);
    fr = (FreemarkerResponse)r;
    writer = new CharArrayWriter();
    fr.renderToWriter(writer);
    assertTrue(writer.toString().contains("Do you like cheese?"));
  }
 
//  public void testAddChoice() throws Exception {
//    fixture(1);
//
//    HttpResponse r = c.get("admin/javango.contrib.admin.tests.Choice/add/");
//    assertTrue(r instanceof FreemarkerResponse);
//    FreemarkerResponse fr = (FreemarkerResponse)r;
//    Map<String, Object> context = fr.getContext();
////    assertEquals(ModelChoiceField.class, context.get("poll").getClass());
//   
//    Map<String, String[]> params = new HashMap<String, String[]>();
//    params.put("choice", new String[] {"I like the cheese"});
//    params.put("poll", new String[] {"0"});
//    params.put("votes", new String[] {"0"});
//    r = c.post("admin/javango.contrib.admin.tests.Choice/add/", params);
//    assertEquals(HttpResponseRedirect.class, r.getClass());
//   
//    r = c.get("admin/javango.contrib.admin.tests.Choice/");
//    assertTrue(r instanceof FreemarkerResponse);
//    fr = (FreemarkerResponse)r;
//// TODO    assertTrue(((List)fr.getContext().get("object_list")).size() == 1);
//    Writer writer = new CharArrayWriter();
//    fr.renderToWriter(writer);
//    assertTrue(writer.toString().contains("I like the cheese"));
//   
//  }
}
TOP

Related Classes of javango.contrib.admin.tests.AdminTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.