/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.bbg.permission;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertNotNull;
import static org.testng.AssertJUnit.assertTrue;
import java.util.Map;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.opengamma.bbg.BloombergConnector;
import com.opengamma.bbg.BloombergPermissions;
import com.opengamma.bbg.test.BloombergTestUtils;
import com.opengamma.core.id.ExternalSchemes;
import com.opengamma.provider.permission.PermissionCheckProviderRequest;
import com.opengamma.provider.permission.PermissionCheckProviderResult;
import com.opengamma.util.test.TestGroup;
/**
* Test.
*/
@Test(groups = TestGroup.INTEGRATION, enabled = false)
public class BloombergBpipePermissionCheckProviderTest {
// fill these in to perform a manual test
private static final String EMRS_USER_ID = "";
private static final String IP_ADDRESS = "";
private static final String EID_27749 = BloombergPermissions.createEidPermissionString(27749);
private static final String EID_35009 = BloombergPermissions.createEidPermissionString(35009);
private static final String EID_39491 = BloombergPermissions.createEidPermissionString(39491);
private static final String EID_40066 = BloombergPermissions.createEidPermissionString(40066);
private static final String EID_41095 = BloombergPermissions.createEidPermissionString(41095);
private static final String EID_46707 = BloombergPermissions.createEidPermissionString(46707);
private static final String EID_1234 = BloombergPermissions.createEidPermissionString(1234);
private BloombergBpipePermissionCheckProvider _provider;
@BeforeMethod
public void setUp() throws Exception {
BloombergConnector connector = BloombergTestUtils.getBloombergBipeConnector();
BloombergBpipePermissionCheckProvider provider = new BloombergBpipePermissionCheckProvider(connector);
provider.start();
_provider = provider;
}
@AfterMethod
public void tearDown() throws Exception {
if (_provider != null) {
_provider.stop();
}
_provider = null;
}
//-------------------------------------------------------------------------
@Test
public void isPermittedEidCheck() {
PermissionCheckProviderRequest request = PermissionCheckProviderRequest.createGet(ExternalSchemes.bloombergEmrsUserId(EMRS_USER_ID), IP_ADDRESS,
EID_27749, EID_35009, EID_39491, EID_40066, EID_41095, EID_46707, EID_1234);
PermissionCheckProviderResult resultHolder = _provider.isPermitted(request);
assertNotNull(resultHolder);
resultHolder.checkErrors();
assertNotNull(resultHolder.getCheckedPermissions());
Map<String, Boolean> checkPermissionResult = resultHolder.getCheckedPermissions();
assertEquals(7, checkPermissionResult.size());
assertTrue(checkPermissionResult.get(EID_27749));
assertTrue(checkPermissionResult.get(EID_35009));
assertTrue(checkPermissionResult.get(EID_39491));
assertTrue(checkPermissionResult.get(EID_40066));
assertTrue(checkPermissionResult.get(EID_41095));
assertTrue(checkPermissionResult.get(EID_46707));
assertFalse(checkPermissionResult.get(EID_1234));
}
@Test
public void notPermittedEidCheckAfterEntitlementRevoked() {
PermissionCheckProviderRequest request = PermissionCheckProviderRequest.createGet(ExternalSchemes.bloombergEmrsUserId(EMRS_USER_ID), IP_ADDRESS,
EID_27749, EID_35009, EID_39491, EID_40066, EID_41095, EID_46707, EID_1234);
PermissionCheckProviderResult resultHolder = _provider.isPermitted(request);
assertNotNull(resultHolder);
resultHolder.checkErrors();
assertNotNull(resultHolder.getCheckedPermissions());
Map<String, Boolean> checkPermissionResult = resultHolder.getCheckedPermissions();
assertEquals(7, checkPermissionResult.size());
assertTrue(checkPermissionResult.get(EID_27749));
assertTrue(checkPermissionResult.get(EID_35009));
assertTrue(checkPermissionResult.get(EID_39491));
assertTrue(checkPermissionResult.get(EID_40066));
assertTrue(checkPermissionResult.get(EID_41095));
assertTrue(checkPermissionResult.get(EID_46707));
assertFalse(checkPermissionResult.get(EID_1234));
// sleep for a bit to allow bloomberg logon on another PC
try {
Thread.sleep(120000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
resultHolder = _provider.isPermitted(request);
assertNotNull(resultHolder);
resultHolder.checkErrors();
assertNotNull(resultHolder.getCheckedPermissions());
checkPermissionResult = resultHolder.getCheckedPermissions();
assertEquals(7, checkPermissionResult.size());
assertFalse(checkPermissionResult.get(EID_27749));
assertFalse(checkPermissionResult.get(EID_35009));
assertFalse(checkPermissionResult.get(EID_39491));
assertFalse(checkPermissionResult.get(EID_40066));
assertFalse(checkPermissionResult.get(EID_41095));
assertFalse(checkPermissionResult.get(EID_46707));
assertFalse(checkPermissionResult.get(EID_1234));
}
}