public static DQPWorkContext example() { DQPWorkContext message = new DQPWorkContext(); message.getSession().setVDBName("vdbName"); // $NON-NLS-1$ message.getSession().setVDBVersion(1); message.getSession().setApplicationName("querybuilder"); // $NON-NLS-1$ message.getSession().setSessionId(String.valueOf(5)); message.getSession().setUserName("userName"); // $NON-NLS-1$ return message; }
@Test public void testAnyAuthenticated() { DQPWorkContext message = new DQPWorkContext(); message.setSession(Mockito.mock(SessionMetadata.class)); VDBMetaData vdb = new VDBMetaData(); DataPolicyMetadata dpm = new DataPolicyMetadata(); dpm.setAnyAuthenticated(true); vdb.addDataPolicy(dpm); Mockito.stub(message.getSession().getVdb()).toReturn(vdb); Map<String, DataPolicy> map = message.getAllowedDataPolicies(); assertEquals(1, map.size()); }
@Test public void testSerialize() throws Exception { DQPWorkContext copy = UnitTestUtil.helpSerialize(example()); assertEquals("5", copy.getSessionId()); // $NON-NLS-1$ assertEquals("userName", copy.getUserName()); // $NON-NLS-1$ assertEquals("vdbName", copy.getVdbName()); // $NON-NLS-1$ assertEquals("1", copy.getVdbVersion()); // $NON-NLS-1$ assertEquals("querybuilder", copy.getAppName()); // $NON-NLS-1$ }
@Test public void testClearPolicies() { DQPWorkContext message = new DQPWorkContext(); message.setSession(Mockito.mock(SessionMetadata.class)); Mockito.stub(message.getSession().getVdb()).toReturn(new VDBMetaData()); Map<String, DataPolicy> map = message.getAllowedDataPolicies(); map.put("role", Mockito.mock(DataPolicy.class)); // $NON-NLS-1$ assertFalse(map.isEmpty()); message.setSession(Mockito.mock(SessionMetadata.class)); Mockito.stub(message.getSession().getVdb()).toReturn(new VDBMetaData()); map = message.getAllowedDataPolicies(); assertTrue(map.isEmpty()); }
@Test public void testRestoreSecurityContext() { final SecurityHelper sc = new SecurityHelper() { Object mycontext = null; @Override public Object getSecurityContext() { return this.mycontext; } @Override public void clearSecurityContext() { this.mycontext = null; } @Override public Object associateSecurityContext(Object context) { Object old = mycontext; this.mycontext = context; return old; } @Override public Subject getSubjectInContext(Object context) { return null; } @Override public Subject getSubjectInContext(String securityDomain) { return null; } @Override public Object authenticate( String securityDomain, String baseUserName, Credentials credentials, String applicationName) throws LoginException { return null; } @Override public GSSResult negotiateGssLogin(String securityDomain, byte[] serviceTicket) throws LoginException { return null; } }; Object previousSC = "testSC"; sc.associateSecurityContext(previousSC); DQPWorkContext message = new DQPWorkContext() { @Override public Subject getSubject() { return new Subject(); } }; message.setSecurityHelper(sc); message.setSession(Mockito.mock(SessionMetadata.class)); final String currentSC = "teiid-security-context"; // $NON-NLS-1$ Mockito.stub(message.getSession().getSecurityContext()).toReturn(currentSC); Runnable r = new Runnable() { @Override public void run() { assertEquals(currentSC, sc.getSecurityContext()); } }; message.runInContext(r); assertEquals(previousSC, sc.getSecurityContext()); }