/**
* This file is licensed under the University of Illinois/NCSA Open Source License. See LICENSE.TXT for details.
*/
package edu.illinois.codingspectator.monitor.tests;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.eclipse.equinox.p2.core.UIServices.AuthenticationInfo;
import org.junit.BeforeClass;
import org.junit.Test;
import edu.illinois.codingspectator.monitor.ui.Uploader;
import edu.illinois.codingspectator.monitor.ui.submission.Submitter;
/**
*
* @author Mohsen Vakilian
*
*/
public class TestAuthentication {
private static MockSubmitterFactory submitterFactory;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
submitterFactory= new MockSubmitterFactory();
}
@Test
public void shouldRetryAuthentication() {
AuthenticationInfo wrongAuthenticationInfo= new AuthenticationInfo("", submitterFactory.getPassword(), false);
MockAuthenticationProvider mockAuthenticationProvider= new MockAuthenticationProvider(wrongAuthenticationInfo, submitterFactory.getAuthenticationInfo());
Submitter submitter= new Submitter(mockAuthenticationProvider);
boolean authenticated= Uploader.promptUntilValidCredentialsOrCanceled(submitter);
assertEquals(MockSubmitterFactory.UUID, submitter.getUUID());
assertEquals(2, mockAuthenticationProvider.getNumberOfTimesQueried());
assertTrue(authenticated);
}
@Test
public void shouldCancelAuthentication() {
AuthenticationInfo wrongAuthenticationInfo= new AuthenticationInfo("", submitterFactory.getPassword(), false);
MockAuthenticationProvider mockAuthenticationProvider= new MockAuthenticationProvider(wrongAuthenticationInfo, null);
Submitter submitter= new Submitter(mockAuthenticationProvider);
boolean authenticated= Uploader.promptUntilValidCredentialsOrCanceled(submitter);
assertEquals(MockSubmitterFactory.UUID, submitter.getUUID());
assertEquals(2, mockAuthenticationProvider.getNumberOfTimesQueried());
assertFalse(authenticated);
}
}