package org.apereo.cas.validation; import org.apereo.cas.authentication.CoreAuthenticationTestUtils; import org.apereo.cas.authentication.principal.Service; import org.apereo.cas.authentication.Authentication; import org.apereo.cas.services.RegisteredServiceTestUtils; import org.junit.Test; import java.util.ArrayList; import java.util.List; import static org.junit.Assert.*; /** * Unit test for {@link ImmutableAssertion} class. * * @author Scott Battaglia * @since 3.0.0 */ public class ImmutableAssertionTests { @Test public void verifyGettersForChainedPrincipals() { final List<Authentication> list = new ArrayList<>(); list.add(CoreAuthenticationTestUtils.getAuthentication("test")); list.add(CoreAuthenticationTestUtils.getAuthentication("test1")); list.add(CoreAuthenticationTestUtils.getAuthentication("test2")); final ImmutableAssertion assertion = new ImmutableAssertion( CoreAuthenticationTestUtils.getAuthentication(), list, RegisteredServiceTestUtils.getService(), true); assertEquals(list.toArray(new Authentication[0]).length, assertion.getChainedAuthentications().size()); } @Test public void verifyGetterFalseForNewLogin() { final List<Authentication> list = new ArrayList<>(); list.add(CoreAuthenticationTestUtils.getAuthentication()); final ImmutableAssertion assertion = new ImmutableAssertion( CoreAuthenticationTestUtils.getAuthentication(), list, RegisteredServiceTestUtils.getService(), false); assertFalse(assertion.isFromNewLogin()); } @Test public void verifyGetterTrueForNewLogin() { final List<Authentication> list = new ArrayList<>(); list.add(CoreAuthenticationTestUtils.getAuthentication()); final ImmutableAssertion assertion = new ImmutableAssertion( CoreAuthenticationTestUtils.getAuthentication(), list, RegisteredServiceTestUtils.getService(), true); assertTrue(assertion.isFromNewLogin()); } @Test public void verifyEqualsWithNull() { final List<Authentication> list = new ArrayList<>(); list.add(CoreAuthenticationTestUtils.getAuthentication()); final ImmutableAssertion assertion = new ImmutableAssertion( CoreAuthenticationTestUtils.getAuthentication(), list, RegisteredServiceTestUtils.getService(), true); assertNotEquals(assertion, null); } @Test public void verifyEqualsWithInvalidObject() { final List<Authentication> list = new ArrayList<>(); list.add(CoreAuthenticationTestUtils.getAuthentication()); final ImmutableAssertion assertion = new ImmutableAssertion( CoreAuthenticationTestUtils.getAuthentication(), list, RegisteredServiceTestUtils.getService(), true); assertFalse("test".equals(assertion)); } @Test public void verifyEqualsWithValidObject() { final List<Authentication> list1 = new ArrayList<>(); final List<Authentication> list2 = new ArrayList<>(); final Authentication auth = CoreAuthenticationTestUtils.getAuthentication(); list1.add(auth); list2.add(auth); final ImmutableAssertion assertion1 = new ImmutableAssertion(auth, list1, RegisteredServiceTestUtils.getService(), true); final ImmutableAssertion assertion2 = new ImmutableAssertion(auth, list2, RegisteredServiceTestUtils.getService(), true); assertTrue(assertion1.equals(assertion2)); } @Test public void verifyGetService() { final Service service = RegisteredServiceTestUtils.getService(); final List<Authentication> list = new ArrayList<>(); list.add(CoreAuthenticationTestUtils.getAuthentication()); final Assertion assertion = new ImmutableAssertion( CoreAuthenticationTestUtils.getAuthentication(), list, service, false); assertEquals(service, assertion.getService()); } }