@Test
  public void testIssuer() {
    req.setIssuer("issuer");

    RequestSecurityToken rst = (RequestSecurityToken) req.getXMLObject();
    Issuer issuer = SAMLUtil.getFirstElement(rst, Issuer.class);
    assertNotNull(issuer);
    assertEquals("issuer", issuer.getAddress().getValue());
  }
  @Test
  public void testAppliesTo() {
    assertNull(
        SAMLUtil.getFirstElement(((RequestSecurityToken) req.getXMLObject()), AppliesTo.class));

    req.setAppliesTo("appliesto");
    RequestSecurityToken rst = (RequestSecurityToken) req.getXMLObject();

    AppliesTo appliesTo = SAMLUtil.getFirstElement(rst, AppliesTo.class);
    assertNotNull(appliesTo);
    EndpointReference epr = (EndpointReference) appliesTo.getUnknownXMLObjects().get(0);
    assertEquals("appliesto", epr.getAddress().getValue());
  }
  @Test
  public void testClaims() {
    RequestSecurityToken rst = (RequestSecurityToken) req.getXMLObject();
    assertNull(SAMLUtil.getFirstElement(rst, Claims.class));

    req.setClaims("urn:dialect", "urn:claim1", "urn:claim2");

    Claims claims = SAMLUtil.getFirstElement(rst, Claims.class);
    assertNotNull(claims);
    assertEquals("urn:dialect", claims.getDialect());
    assertEquals(2, claims.getUnknownXMLObjects().size());

    assertEquals("urn:claim1", SAMLUtil.getFirstElement(claims, ClaimType.class).getUri());
  }
  @Test
  public void testOnBehalfOf() {
    assertNull(
        SAMLUtil.getFirstElement(((RequestSecurityToken) req.getXMLObject()), OnBehalfOf.class));

    req.setOnBehalfOf("id");
    RequestSecurityToken rst = (RequestSecurityToken) req.getXMLObject();
    OnBehalfOf onBehalfOf = SAMLUtil.getFirstElement(rst, OnBehalfOf.class);
    assertNotNull(onBehalfOf);
    assertTrue(onBehalfOf.getUnknownXMLObject() instanceof SecurityTokenReference);
    SecurityTokenReference str = (SecurityTokenReference) onBehalfOf.getUnknownXMLObject();
    assertEquals(
        TrustConstants.TOKEN_TYPE_SAML_20,
        str.getUnknownAttributes().get(TrustConstants.TOKEN_TYPE));
    assertEquals("id", SAMLUtil.getFirstElement(str, KeyIdentifier.class).getValue());
  }
 @Test
 public void testBuild() {
   assertNotNull(req.getXMLObject());
   assertEquals(3, req.getXMLObject().getOrderedChildren().size());
   assertTrue(req.getXMLObject() instanceof RequestSecurityToken);
 }
 @Before
 public void setUp() {
   req = OIOIssueRequest.buildRequest();
 }