package org.jooby.internal.pac4j; import static org.easymock.EasyMock.expect; import org.jooby.Err; import org.jooby.Response; import org.jooby.test.MockUnit; import org.junit.Test; import org.pac4j.core.client.Client; import org.pac4j.core.exception.HttpAction; import org.pac4j.http.client.indirect.IndirectBasicAuthClient; public class AuthResponseTest { @Test public void defaults() throws Exception { new MockUnit(Response.class) .run(unit -> { new AuthResponse(unit.get(Response.class)); }); } @Test public void committed() throws Exception { new MockUnit(Response.class, Client.class, HttpAction.class) .expect(unit -> { Response rsp = unit.get(Response.class); expect(rsp.committed()).andReturn(true); }) .run(unit -> { new AuthResponse(unit.get(Response.class)) .handle(unit.get(Client.class), unit.get(HttpAction.class)); }); } @Test public void noerr() throws Exception { new MockUnit(Response.class, Client.class, HttpAction.class) .expect(unit -> { Response rsp = unit.get(Response.class); expect(rsp.committed()).andReturn(false); HttpAction req = unit.get(HttpAction.class); expect(req.getCode()).andReturn(302); }) .run(unit -> { new AuthResponse(unit.get(Response.class)) .handle(unit.get(Client.class), unit.get(HttpAction.class)); }); } @Test(expected = Err.class) public void err() throws Exception { new MockUnit(Response.class, Client.class, HttpAction.class) .expect(unit -> { Response rsp = unit.get(Response.class); expect(rsp.committed()).andReturn(false); HttpAction req = unit.get(HttpAction.class); expect(req.getCode()).andReturn(401); }) .run(unit -> { new AuthResponse(unit.get(Response.class)) .handle(unit.get(Client.class), unit.get(HttpAction.class)); }); } public void statusCode() throws Exception { new MockUnit(Response.class, IndirectBasicAuthClient.class, HttpAction.class) .expect(unit -> { Response rsp = unit.get(Response.class); expect(rsp.committed()).andReturn(false); expect(rsp.status(401)).andReturn(rsp); rsp.end(); HttpAction req = unit.get(HttpAction.class); expect(req.getCode()).andReturn(401); }) .run(unit -> { new AuthResponse(unit.get(Response.class)) .handle(unit.get(IndirectBasicAuthClient.class), unit.get(HttpAction.class)); }); } }