/* * JBoss, Home of Professional Open Source. * Copyright 2008, Red Hat Middleware LLC, and individual contributors * as indicated by the @author tags. See the copyright.txt file in the * distribution for a full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.jboss.test.services.binding.test; import junit.framework.TestCase; import org.jboss.services.binding.ServiceBindingMetadata; /** * @author Brian Stansberry * */ public class ServiceBindingMetadataTestCase extends TestCase { private static final String S = "S"; private static final String B = "B"; private static final String H = "H"; private static final String FQN = S + ":" + B; /** * Test method for {@link org.jboss.services.binding.ServiceBindingMetadata#ServiceBindingMetadata(java.lang.String)}. */ public void testServiceBindingMetadataString() { ServiceBindingMetadata md = new ServiceBindingMetadata(S); assertEquals(S, md.getServiceName()); assertFalse(md.isFixedHostName()); assertFalse(md.isFixedPort()); try { String svcName = null; md = new ServiceBindingMetadata(svcName); fail("null serviceName allowed"); } catch (IllegalArgumentException good) {} } /** * Test method for {@link org.jboss.services.binding.ServiceBindingMetadata#ServiceBindingMetadata(java.lang.String, java.lang.String)}. */ public void testServiceBindingMetadataStringString() { ServiceBindingMetadata md = new ServiceBindingMetadata(S, B); assertEquals(S, md.getServiceName()); assertEquals(B, md.getBindingName()); assertFalse(md.isFixedHostName()); assertFalse(md.isFixedPort()); md = new ServiceBindingMetadata(S, null); assertEquals(S, md.getServiceName()); assertEquals(null, md.getBindingName()); assertFalse(md.isFixedHostName()); assertFalse(md.isFixedPort()); try { md = new ServiceBindingMetadata(null, B); fail("null serviceName allowed"); } catch (IllegalArgumentException good) {} } /** * Test method for {@link org.jboss.services.binding.ServiceBindingMetadata#ServiceBindingMetadata(java.lang.String, java.lang.String, java.lang.String, int)}. */ public void testServiceBindingMetadataStringStringStringInt() { ServiceBindingMetadata md = new ServiceBindingMetadata(S, B, H, 1); assertEquals(S, md.getServiceName()); assertEquals(B, md.getBindingName()); assertEquals(H, md.getHostName()); assertEquals(1, md.getPort()); assertFalse(md.isFixedPort()); assertTrue(md.isFixedHostName()); md = new ServiceBindingMetadata(S, null, null, 1); assertEquals(S, md.getServiceName()); assertEquals(null, md.getBindingName()); assertEquals(null, md.getHostName()); assertEquals(1, md.getPort()); assertFalse(md.isFixedPort()); assertFalse(md.isFixedHostName()); try { md = new ServiceBindingMetadata(null, B, H, 1); fail("null serviceName allowed"); } catch (IllegalArgumentException good) {} } /** * Test method for {@link org.jboss.services.binding.ServiceBindingMetadata#ServiceBindingMetadata(java.lang.String, java.lang.String, java.lang.String, int, boolean, boolean)}. */ public void testServiceBindingMetadataStringStringStringIntBooleanBoolean() { ServiceBindingMetadata md = new ServiceBindingMetadata(S, B, H, 1, true, true); assertEquals(S, md.getServiceName()); assertEquals(B, md.getBindingName()); assertEquals(H, md.getHostName()); assertEquals(1, md.getPort()); assertTrue(md.isFixedPort()); assertTrue(md.isFixedHostName()); md = new ServiceBindingMetadata(S, null, null, 1, true, true); assertEquals(S, md.getServiceName()); assertEquals(null, md.getBindingName()); assertEquals(null, md.getHostName()); assertEquals(1, md.getPort()); assertTrue(md.isFixedPort()); assertTrue(md.isFixedHostName()); try { md = new ServiceBindingMetadata(null, B, H, 1, true, true); fail("null serviceName allowed"); } catch (IllegalArgumentException good) {} } /** * Test method for {@link org.jboss.services.binding.ServiceBindingMetadata#setServiceName(java.lang.String)}. */ public void testSetServiceName() { ServiceBindingMetadata md = new ServiceBindingMetadata(); md.setServiceName(S); assertEquals(S, md.getServiceName()); try { md.setServiceName(null); fail("null serviceName allowed"); } catch (IllegalArgumentException good) {} } /** * Test method for {@link org.jboss.services.binding.ServiceBindingMetadata#setBindingName(java.lang.String)}. */ public void testSetBindingName() { ServiceBindingMetadata md = new ServiceBindingMetadata(); md.setBindingName(B); assertEquals(B, md.getBindingName()); md.setBindingName(null); assertEquals(null, md.getBindingName()); } /** * Test method for {@link org.jboss.services.binding.ServiceBindingMetadata#getFullyQualifiedName()}. */ public void testGetFullyQualifiedName() { ServiceBindingMetadata md = new ServiceBindingMetadata(S, B); assertEquals(FQN, md.getFullyQualifiedName()); md = new ServiceBindingMetadata(S, null); assertEquals(S,md.getFullyQualifiedName()); md = new ServiceBindingMetadata(); try { md.getFullyQualifiedName(); fail("getFullyQualifiedName should fail with no serviceName set"); } catch (IllegalStateException good) {} } /** * Test method for {@link org.jboss.services.binding.ServiceBindingMetadata#setHostName(java.lang.String)}. */ public void testSetHostName() { ServiceBindingMetadata md = new ServiceBindingMetadata(); md.setHostName(H); assertEquals(H, md.getHostName()); } /** * Test method for {@link org.jboss.services.binding.ServiceBindingMetadata#setPort(int)}. */ public void testSetPort() { ServiceBindingMetadata md = new ServiceBindingMetadata(); md.setPort(2); assertEquals(2, md.getPort()); } /** * Test method for {@link org.jboss.services.binding.ServiceBindingMetadata#setServiceBindingValueSource(org.jboss.services.binding.ServiceBindingValueSource)}. */ public void testSetServiceBindingValueSource() { ServiceBindingMetadata md = new ServiceBindingMetadata(); MockServiceBindingValueSource mock = new MockServiceBindingValueSource(); md.setServiceBindingValueSource(mock); assertSame(mock, md.getServiceBindingValueSource()); assertEquals(mock.getClass().getName(), md.getServiceBindingValueSourceClassName()); } /** * Test method for {@link org.jboss.services.binding.ServiceBindingMetadata#setServiceBindingValueSourceClassName(java.lang.String)}. */ public void testSetServiceBindingValueSourceClassName() { ServiceBindingMetadata md = new ServiceBindingMetadata(); md.setServiceBindingValueSourceClassName(S); assertEquals(S, md.getServiceBindingValueSourceClassName()); } /** * Test method for {@link org.jboss.services.binding.ServiceBindingMetadata#setServiceBindingValueSourceConfig(java.lang.Object)}. */ public void testSetServiceBindingValueSourceConfig() { ServiceBindingMetadata md = new ServiceBindingMetadata(); Object config = new Object(); md.setServiceBindingValueSourceConfig(config); assertSame(config, md.getServiceBindingValueSourceConfig()); } /** * Test method for {@link org.jboss.services.binding.ServiceBindingMetadata#setFixedPort(boolean)}. */ public void testSetFixedPort() { ServiceBindingMetadata md = new ServiceBindingMetadata(); assertFalse(md.isFixedPort()); md.setFixedPort(true); assertTrue(md.isFixedPort()); } /** * Test method for {@link org.jboss.services.binding.ServiceBindingMetadata#setFixedHostName(boolean)}. */ public void testSetFixedHostName() { ServiceBindingMetadata md = new ServiceBindingMetadata(); assertFalse(md.isFixedHostName()); md.setFixedHostName(true); assertTrue(md.isFixedHostName()); } /** * Test method for {@link org.jboss.services.binding.ServiceBindingMetadata#equals(java.lang.Object)}. */ public void testEqualsObject() { ServiceBindingMetadata md1 = new ServiceBindingMetadata(); ServiceBindingMetadata md2 = new ServiceBindingMetadata(); assertFalse(md1.equals(md2)); md1 = new ServiceBindingMetadata(S, B); md2 = new ServiceBindingMetadata(S, null); assertFalse(md1.equals(md2)); assertFalse(md2.equals(md1)); md2 = new ServiceBindingMetadata(B, B); assertFalse(md1.equals(md2)); assertFalse(md2.equals(md1)); md2 = new ServiceBindingMetadata(S, B); md2.setHostName(H); md2.setPort(10); md2.setServiceBindingValueSource(new MockServiceBindingValueSource()); md2.setServiceBindingValueSourceConfig(new Object()); assertTrue(md1.equals(md2)); assertTrue(md2.equals(md1)); } /** * Test method for {@link ServiceBindingMetadata#compareTo(ServiceBindingMetadata)} */ public void testCompareTo() { ServiceBindingMetadata md1 = new ServiceBindingMetadata(); ServiceBindingMetadata md2 = new ServiceBindingMetadata(); try { md1.compareTo(md2); fail("compareTo should fail with unset serviceName"); } catch (IllegalStateException good) {} md1 = new ServiceBindingMetadata(S, B); md2 = new ServiceBindingMetadata(S, null); assertTrue(md1.compareTo(md2) > 0); assertTrue(md2.compareTo(md1) < 0); md2 = new ServiceBindingMetadata(B, B); assertTrue(md1.compareTo(md2) > 0); assertTrue(md2.compareTo(md1) < 0); md2 = new ServiceBindingMetadata(S, B); md2.setHostName(H); md2.setPort(10); md2.setServiceBindingValueSource(new MockServiceBindingValueSource()); md2.setServiceBindingValueSourceConfig(new Object()); assertEquals(0, md1.compareTo(md2)); assertEquals(0, md2.compareTo(md1)); } }