package org.fcrepo.server.security.impl;
import static org.junit.Assert.assertEquals;
import java.io.ByteArrayInputStream;
import java.net.URI;
import org.fcrepo.server.Context;
import org.fcrepo.server.security.Attribute;
import org.jboss.security.xacml.sunxacml.ParsingException;
import org.jboss.security.xacml.sunxacml.attr.StringAttribute;
import org.jboss.security.xacml.sunxacml.ctx.Subject;
import org.jboss.security.xacml.sunxacml.finder.AttributeFinder;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class TestAttributeImpls {
@Mock
private AttributeFinder mockFinder;
@Mock
private Context mockContext;
@Mock
private Subject mockSubject;
@Before
public void setUp() throws ParsingException{
}
@Test
public void testBasicRoundtrip() throws ParsingException {
URI id = URI.create("lol:wut");
String issuer = null;
BasicAttribute expected = new BasicAttribute(id, issuer, null, StringAttribute.getInstance("foo"));
String encoded = expected.encode();
ByteArrayInputStream input = new ByteArrayInputStream(encoded.getBytes());
Attribute actual = BasicAttribute.getInstance(InputParser.parseInput(input, "Attribute"));
assertEquals(expected, actual);
}
@Test
public void testSingletonRoundtrip() throws ParsingException {
URI id = URI.create("lol:wut");
String issuer = null;
Attribute expected = new SingletonAttribute(id, issuer, null, StringAttribute.getInstance("foo"));
String encoded = expected.encode();
ByteArrayInputStream input = new ByteArrayInputStream(encoded.getBytes());
Attribute actual = BasicAttribute.getInstance(InputParser.parseInput(input, "Attribute"));
assertEquals(expected, actual);
}
// Supports legacy test runners
public static junit.framework.Test suite() {
return new junit.framework.JUnit4TestAdapter(TestAttributeImpls.class);
}
}