/* * Copyright 2005-2010 the original author or authors. * * Licensed 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.wamblee.security.authorization; import junit.framework.TestCase; /** * Test of the operation registry. * * @author Erik Brakkee */ public class DefaultOperationRegistryTest extends TestCase { private OperationRegistry registry; /* * (non-Javadoc) * * @see junit.framework.TestCase#setUp() */ @Override protected void setUp() throws Exception { registry = new DefaultOperationRegistry(new Operation[] { new AllOperation(), new ReadOperation(), new WriteOperation(), new DeleteOperation(), new CreateOperation() }); } /** * Tests encoding and decoding of no operations. */ public void testEncodeDecodeNooperations() { assertEquals("", registry.encode(new Operation[0])); assertEquals(0, registry.decode(Object.class, "").length); } /** * Verifies that encoding of operations into a string works. */ public void testEncode() { assertEquals("read,write", registry.encode(new Operation[] { new ReadOperation(), new WriteOperation() })); } /** * Verifies that decoding of operation from a string works. */ public void testDecode() { Operation[] operations = registry.decode(Object.class, "read,write"); assertTrue(operations[0] instanceof ReadOperation); assertTrue(operations[1] instanceof WriteOperation); } /** * Verifies that an IllegalArgumentException occurs when attempting to * decode an operation that is not known. */ public void testDecodeUnknownOperation() { try { registry.decode(Object.class, "bla"); fail(); } catch (IllegalArgumentException e) { // ok } } }