/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.jena.permissions.model; import org.apache.jena.datatypes.DatatypeFormatException; import org.apache.jena.permissions.MockSecurityEvaluator; import org.apache.jena.permissions.SecurityEvaluatorParameters; import org.apache.jena.permissions.SecurityEvaluator.Action; import org.apache.jena.permissions.model.SecuredLiteral; import org.apache.jena.permissions.model.impl.SecuredLiteralImpl; import org.apache.jena.rdf.model.Literal; import org.apache.jena.rdf.model.ResourceFactory; import org.apache.jena.rdf.model.ResourceRequiredException; import org.apache.jena.shared.BadBooleanException; import org.apache.jena.shared.BadCharLiteralException; import org.apache.jena.shared.ReadDeniedException; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(value = SecurityEvaluatorParameters.class) public class SecuredLiteralTest extends SecuredRDFNodeTest { public SecuredLiteralTest(final MockSecurityEvaluator securityEvaluator) { super(securityEvaluator); } private SecuredLiteral getSecuredLiteral() { return (SecuredLiteral) getSecuredRDFNode(); } @Test public void sameValueAs() { try { getSecuredLiteral().sameValueAs( ResourceFactory.createPlainLiteral("Junk")); if (!securityEvaluator.evaluate(Action.Read)) { Assert.fail("Should have thrown ReadDeniedException Exception"); } } catch (final ReadDeniedException e) { if (securityEvaluator.evaluate(Action.Read)) { Assert.fail(String .format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple())); } } } @Override @Before public void setup() { super.setup(); Literal l = ResourceFactory.createTypedLiteral("literal"); setSecuredRDFNode(SecuredLiteralImpl.getInstance(securedModel, l), l); } @Test public void testAsLiteral() { getSecuredLiteral().asLiteral(); } @Test public void testAsResource() { try { getSecuredLiteral().asResource(); Assert.fail("Should have thrown ResoruceRequiredException"); } catch (final ResourceRequiredException e) { // expected } } @Test public void testGetBoolean() { try { getSecuredLiteral().getBoolean(); if (!securityEvaluator.evaluate(Action.Read)) { Assert.fail("Should have thrown ReadDeniedException Exception"); } } catch (final ReadDeniedException e) { if (securityEvaluator.evaluate(Action.Read)) { Assert.fail(String .format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple())); } } catch (final DatatypeFormatException | BadBooleanException e) { // expected } } @Test public void testGetByte() { try { getSecuredLiteral().getByte(); if (!securityEvaluator.evaluate(Action.Read)) { Assert.fail("Should have thrown ReadDeniedException Exception"); } } catch (final ReadDeniedException e) { if (securityEvaluator.evaluate(Action.Read)) { Assert.fail(String .format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple())); } } catch (final DatatypeFormatException | NumberFormatException e) { // expected } } @Test public void testGetChar() { try { getSecuredLiteral().getChar(); if (!securityEvaluator.evaluate(Action.Read)) { Assert.fail("Should have thrown ReadDeniedException Exception"); } } catch (final ReadDeniedException e) { if (securityEvaluator.evaluate(Action.Read)) { Assert.fail(String .format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple())); } } catch (final DatatypeFormatException | BadCharLiteralException e) { // expected } } @Test public void testGetDatatype() { try { getSecuredLiteral().getDatatype(); if (!securityEvaluator.evaluate(Action.Read)) { Assert.fail("Should have thrown ReadDeniedException Exception"); } } catch (final ReadDeniedException e) { if (securityEvaluator.evaluate(Action.Read)) { Assert.fail(String .format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple())); } } } @Test public void testGetDatatypeURI() { try { getSecuredLiteral().getDatatypeURI(); if (!securityEvaluator.evaluate(Action.Read)) { Assert.fail("Should have thrown ReadDeniedException Exception"); } } catch (final ReadDeniedException e) { if (securityEvaluator.evaluate(Action.Read)) { Assert.fail(String .format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple())); } } } @Test public void testGetDouble() { try { getSecuredLiteral().getDouble(); if (!securityEvaluator.evaluate(Action.Read)) { Assert.fail("Should have thrown ReadDeniedException Exception"); } } catch (final ReadDeniedException e) { if (securityEvaluator.evaluate(Action.Read)) { Assert.fail(String .format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple())); } } catch (final DatatypeFormatException | NumberFormatException e) { // expected } } @Test public void testGetFloat() { try { getSecuredLiteral().getFloat(); if (!securityEvaluator.evaluate(Action.Read)) { Assert.fail("Should have thrown ReadDeniedException Exception"); } } catch (final ReadDeniedException e) { if (securityEvaluator.evaluate(Action.Read)) { Assert.fail(String .format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple())); } } catch (final DatatypeFormatException | NumberFormatException e) { // expected } } @Test public void testGetInt() { try { getSecuredLiteral().getInt(); if (!securityEvaluator.evaluate(Action.Read)) { Assert.fail("Should have thrown ReadDeniedException Exception"); } } catch (final ReadDeniedException e) { if (securityEvaluator.evaluate(Action.Read)) { Assert.fail(String .format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple())); } } catch (final DatatypeFormatException | NumberFormatException e) { // expected } } @Test public void testGetLanguage() { try { getSecuredLiteral().getLanguage(); if (!securityEvaluator.evaluate(Action.Read)) { Assert.fail("Should have thrown ReadDeniedException Exception"); } } catch (final ReadDeniedException e) { if (securityEvaluator.evaluate(Action.Read)) { Assert.fail(String .format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple())); } } } @Test public void testGetLexicalForm() { try { getSecuredLiteral().getLexicalForm(); if (!securityEvaluator.evaluate(Action.Read)) { Assert.fail("Should have thrown ReadDeniedException Exception"); } } catch (final ReadDeniedException e) { if (securityEvaluator.evaluate(Action.Read)) { Assert.fail(String .format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple())); } } } @Test public void testGetLong() { try { getSecuredLiteral().getLong(); if (!securityEvaluator.evaluate(Action.Read)) { Assert.fail("Should have thrown ReadDeniedException Exception"); } } catch (final ReadDeniedException e) { if (securityEvaluator.evaluate(Action.Read)) { Assert.fail(String .format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple())); } } catch (final DatatypeFormatException | NumberFormatException e) { // expected } } @Test public void testGetShort() { try { getSecuredLiteral().getShort(); if (!securityEvaluator.evaluate(Action.Read)) { Assert.fail("Should have thrown ReadDeniedException Exception"); } } catch (final ReadDeniedException e) { if (securityEvaluator.evaluate(Action.Read)) { Assert.fail(String .format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple())); } } catch (final DatatypeFormatException | NumberFormatException e) { // expected } } @Test public void testGetString() { try { getSecuredLiteral().getString(); if (!securityEvaluator.evaluate(Action.Read)) { Assert.fail("Should have thrown ReadDeniedException Exception"); } } catch (final ReadDeniedException e) { if (securityEvaluator.evaluate(Action.Read)) { Assert.fail(String .format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple())); } } catch (final DatatypeFormatException | NumberFormatException e) { // expected } } @Test public void testGetValue() { try { getSecuredLiteral().getValue(); if (!securityEvaluator.evaluate(Action.Read)) { Assert.fail("Should have thrown ReadDeniedException Exception"); } } catch (final ReadDeniedException e) { if (securityEvaluator.evaluate(Action.Read)) { Assert.fail(String .format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple())); } } } @Test public void testIsWellFormedXML() { try { getSecuredLiteral().isWellFormedXML(); if (!securityEvaluator.evaluate(Action.Read)) { Assert.fail("Should have thrown ReadDeniedException Exception"); } } catch (final ReadDeniedException e) { if (securityEvaluator.evaluate(Action.Read)) { Assert.fail(String .format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple())); } } } }