package test.stripes;

import java.util.Collections;

import net.sourceforge.stripes.controller.DispatcherServlet;
import net.sourceforge.stripes.controller.StripesFilter;
import net.sourceforge.stripes.mock.MockRoundtrip;
import net.sourceforge.stripes.mock.MockServletContext;

import org.junit.Before;
import org.junit.Test;

public class TestExceptionLogging {

	private static MockServletContext context;

	@Before
	public void setup() {
		if (context == null)  {
			context = new MockServletContext("test");
			context.addFilter(StripesFilter.class, "StripesFilter", Collections
					.<String, String> singletonMap("ActionResolver.Packages",
							getClass().getPackage().getName()));
			context.setServlet(DispatcherServlet.class, "StripesDispatcher", null);
		}
	}

	@Test
	public void testExceptionThatIsCorrectlyLogged() throws Exception {
		newTrip().execute("logged");
	}


	@Test
	public void testExceptionThatIsNotLogged() throws Exception  {
		// no information besides "ActionBean execution threw an exception."
		newTrip().execute("notLogged");
	}


	private MockRoundtrip newTrip() {
		return new MockRoundtrip(context, BadActionBean.class);
	}
}

