@NotNull public static TokenProvider newInstance(@NotNull TokenProvider... providers) { return newInstance(Arrays.<TokenProvider>asList(providers)); }
@NotNull public static TokenProvider newInstance(@NotNull List<? extends TokenProvider> providers) { switch (providers.size()) { case 0: return NULL_PROVIDER; case 1: return providers.iterator().next(); default: return new CompositeTokenProvider(providers); } }
@Nonnull public static TokenProvider newInstance(@Nonnull TokenProvider... providers) { return newInstance(Arrays.<TokenProvider>asList(providers)); }
@Nonnull public static TokenProvider newInstance(@Nonnull List<? extends TokenProvider> providers) { switch (providers.size()) { case 0: return NULL_PROVIDER; case 1: return providers.iterator().next(); default: return new CompositeTokenProvider(providers); } }
@NotNull @Override public TokenProvider getTokenProvider(final Root root) { List<TokenProvider> providers = Lists.transform(getConfigurations(), new Function<TokenConfiguration, TokenProvider>() { @Override public TokenProvider apply(TokenConfiguration tokenConfiguration) { return tokenConfiguration.getTokenProvider(root); } }); return CompositeTokenProvider.newInstance(providers); } }
@Nonnull @Override public TokenProvider getTokenProvider(final Root root) { List<TokenProvider> providers = Lists.transform(getConfigurations(), new Function<TokenConfiguration, TokenProvider>() { @Override public TokenProvider apply(TokenConfiguration tokenConfiguration) { return tokenConfiguration.getTokenProvider(root); } }); return CompositeTokenProvider.newInstance(providers); } }
@Test public void testSingleProvider() { TokenProvider base = Mockito.mock(TokenProvider.class); TokenProvider tp = CompositeTokenProvider.newInstance(base); assertSame(base, tp); assertSame(base, CompositeTokenProvider.newInstance(ImmutableList.of(base))); }
@Test public void testCreateCompositeProviderFromList() { TokenProvider base = Mockito.mock(TokenProvider.class); TokenProvider tp = CompositeTokenProvider.newInstance(ImmutableList.of(base, base)); assertTrue(tp instanceof CompositeTokenProvider); }
@Before public void before() { info = Mockito.mock(TokenInfo.class); Mockito.when(info.getToken()).thenReturn(TOKEN); TokenProvider tp1 = Mockito.mock(TokenProvider.class); TokenProvider tp2 = new TestTokenProvider(); composite = CompositeTokenProvider.newInstance(tp1, tp2); }
@Test public void testNullProvider() { TokenProvider tp = CompositeTokenProvider.newInstance(); assertSame(tp, CompositeTokenProvider.newInstance(ImmutableList.<TokenProvider>of())); Credentials creds = new Credentials() {}; assertFalse(tp.doCreateToken(null)); assertFalse(tp.doCreateToken(creds)); assertNull(tp.createToken(null, null)); assertNull(tp.createToken("userID", ImmutableMap.<String, String>of())); assertNull(tp.createToken(null)); assertNull(tp.createToken(creds)); assertNull(tp.getTokenInfo(null)); assertNull(tp.getTokenInfo("anyString")); }