/* * Copyright 2005 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. */ 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 } } }