@Test
  public void testWrongType() throws Exception {
    final int[] intArray = {1, 2, 3, 4};
    final Collection<? extends IdPAttributeValue<?>> values =
        Arrays.asList(
            new IdPAttributeValue<Object>() {
              public Object getValue() {
                return intArray;
              }

              public String getDisplayValue() {
                return intArray.toString();
              }
            },
            saml2NameIdFor(OTHERID));

    final IdPAttribute inputAttribute = new IdPAttribute(ATTR_NAME);
    inputAttribute.setValues(values);
    prc.getSubcontext(RelyingPartyContext.class)
        .getSubcontext(AttributeContext.class, true)
        .setIdPAttributes(Collections.singleton(inputAttribute));

    generator.setAttributeSourceIds(Collections.singletonList(ATTR_NAME));
    generator.initialize();

    Assert.assertNull(generator.generate(prc, generator.getFormat()));
  }
  @BeforeMethod
  public void initTest() throws ComponentInitializationException {

    generator = new AttributeSourcedSAML1NameIdentifierGenerator();
    generator.setId("test");
    generator.setFormat(NameIdentifier.X509_SUBJECT);
    saml1Builder = new NameIdentifierBuilder();
    saml2Builder = new NameIDBuilder();
    prc = new RequestContextBuilder().buildProfileRequestContext();
  }
  @Test
  public void testWrongFormat() throws Exception {
    final Collection<? extends IdPAttributeValue<?>> values =
        Collections.singletonList(saml1NameIdFor(NAME_1));
    final IdPAttribute inputAttribute = new IdPAttribute(ATTR_NAME);
    inputAttribute.setValues(values);
    prc.getSubcontext(RelyingPartyContext.class)
        .getSubcontext(AttributeContext.class, true)
        .setIdPAttributes(Collections.singleton(inputAttribute));

    generator.setFormat(NameIdentifier.EMAIL);
    generator.setAttributeSourceIds(Collections.singletonList(ATTR_NAME));
    generator.initialize();
    Assert.assertNull(generator.generate(prc, generator.getFormat()));
  }
 @Test(
     expectedExceptions = {
       ComponentInitializationException.class,
     })
 public void testInvalidConfig() throws Exception {
   generator.initialize();
 }
  @Test
  public void testNameIdentifierValued() throws Exception {
    final Collection<? extends IdPAttributeValue<?>> values =
        Collections.singletonList(saml1NameIdFor(NAME_1));
    final IdPAttribute inputAttribute = new IdPAttribute(ATTR_NAME);
    inputAttribute.setValues(values);
    prc.getSubcontext(RelyingPartyContext.class)
        .getSubcontext(AttributeContext.class, true)
        .setIdPAttributes(Collections.singleton(inputAttribute));

    generator.setAttributeSourceIds(Collections.singletonList(ATTR_NAME));
    generator.initialize();
    final NameIdentifier outputNameId = generator.generate(prc, generator.getFormat());

    Assert.assertNotNull(outputNameId);
    Assert.assertEquals(outputNameId.getValue(), NAME_1);
    Assert.assertEquals(outputNameId.getFormat(), NameIdentifier.X509_SUBJECT);
    Assert.assertEquals(outputNameId.getNameQualifier(), QUALIFIER);
  }
 @Test
 public void testNoSource() throws ComponentInitializationException, SAMLException {
   generator.setAttributeSourceIds(Collections.singletonList("bar"));
   generator.initialize();
   Assert.assertNull(generator.generate(prc, generator.getFormat()));
 }