/* * 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.activemq.artemis.tests.unit.core.postoffice.impl; import org.apache.activemq.artemis.api.core.SimpleString; import org.apache.activemq.artemis.core.postoffice.Address; import org.apache.activemq.artemis.core.postoffice.impl.AddressImpl; import org.apache.activemq.artemis.tests.util.ActiveMQTestBase; import org.junit.Assert; import org.junit.Test; public class AddressImplTest extends ActiveMQTestBase { @Test public void testNoDots() { SimpleString s1 = new SimpleString("abcde"); SimpleString s2 = new SimpleString("abcde"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Assert.assertTrue(a1.matches(a2)); } @Test public void testDotsSameLength2() { SimpleString s1 = new SimpleString("a.b"); SimpleString s2 = new SimpleString("a.b"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Assert.assertTrue(a1.matches(a2)); } @Test public void testA() { SimpleString s1 = new SimpleString("a.b.c"); SimpleString s2 = new SimpleString("a.b.c.d.e.f.g.h.i.j.k.l.m.n.*"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Assert.assertFalse(a1.matches(a2)); } @Test public void testB() { SimpleString s1 = new SimpleString("a.b.c.d"); SimpleString s2 = new SimpleString("a.b.x.e"); SimpleString s3 = new SimpleString("a.b.c.*"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Address w = new AddressImpl(s3); Assert.assertTrue(a1.matches(w)); Assert.assertFalse(a2.matches(w)); } @Test public void testC() { SimpleString s1 = new SimpleString("a.b.c.d"); SimpleString s2 = new SimpleString("a.b.c.x"); SimpleString s3 = new SimpleString("a.b.*.d"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Address w = new AddressImpl(s3); Assert.assertTrue(a1.matches(w)); Assert.assertFalse(a2.matches(w)); } @Test public void testD() { SimpleString s1 = new SimpleString("a.b.c.d.e"); SimpleString s2 = new SimpleString("a.b.c.x.e"); SimpleString s3 = new SimpleString("a.b.*.d.*"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Address w = new AddressImpl(s3); Assert.assertTrue(a1.matches(w)); Assert.assertFalse(a2.matches(w)); } @Test public void testE() { SimpleString s1 = new SimpleString("a.b.c.d.e.f"); SimpleString s2 = new SimpleString("a.b.c.x.e.f"); SimpleString s3 = new SimpleString("a.b.*.d.*.f"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Address w = new AddressImpl(s3); Assert.assertTrue(a1.matches(w)); Assert.assertFalse(a2.matches(w)); } @Test public void testF() { SimpleString s1 = new SimpleString("a.b.c.d.e.f"); SimpleString s2 = new SimpleString("a.b.c.x.e.f"); SimpleString s3 = new SimpleString("#"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Address w = new AddressImpl(s3); Assert.assertTrue(a1.matches(w)); Assert.assertTrue(a2.matches(w)); } @Test public void testG() { SimpleString s1 = new SimpleString("a.b.c.d.e.f"); SimpleString s2 = new SimpleString("a.b.c.x.e.f"); SimpleString s3 = new SimpleString("a.#"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Address w = new AddressImpl(s3); Assert.assertTrue(a1.matches(w)); Assert.assertTrue(a2.matches(w)); } @Test public void testH() { SimpleString s1 = new SimpleString("a.b.c.d.e.f"); SimpleString s2 = new SimpleString("a.b.c.x.e.f"); SimpleString s3 = new SimpleString("#.b.#"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Address w = new AddressImpl(s3); Assert.assertTrue(a1.matches(w)); Assert.assertTrue(a2.matches(w)); } @Test public void testI() { SimpleString s1 = new SimpleString("a.b.c.d.e.f"); SimpleString s2 = new SimpleString("a.b.c.x.e.f"); SimpleString s3 = new SimpleString("a.#.b.#"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Address w = new AddressImpl(s3); Assert.assertTrue(a1.matches(w)); Assert.assertTrue(a2.matches(w)); } @Test public void testJ() { SimpleString s1 = new SimpleString("a.b.c.d.e.f"); SimpleString s2 = new SimpleString("a.b.c.x.e.f"); SimpleString s3 = new SimpleString("a.#.c.d.e.f"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Address w = new AddressImpl(s3); Assert.assertTrue(a1.matches(w)); Assert.assertFalse(a2.matches(w)); } @Test public void testK() { SimpleString s1 = new SimpleString("a.b.c.d.e.f"); SimpleString s2 = new SimpleString("a.b.c.d.e.x"); SimpleString s3 = new SimpleString("a.#.c.d.e.*"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Address w = new AddressImpl(s3); Assert.assertTrue(a1.matches(w)); Assert.assertTrue(a2.matches(w)); } @Test public void testL() { SimpleString s1 = new SimpleString("a.b.c.d.e.f"); SimpleString s2 = new SimpleString("a.b.c.d.e.x"); SimpleString s3 = new SimpleString("a.#.c.d.*.f"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Address w = new AddressImpl(s3); Assert.assertTrue(a1.matches(w)); Assert.assertFalse(a2.matches(w)); } @Test public void testM() { SimpleString s1 = new SimpleString("a.b.c"); SimpleString s2 = new SimpleString("a.b.x.e"); SimpleString s3 = new SimpleString("a.b.c.#"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Address w = new AddressImpl(s3); Assert.assertTrue(a1.matches(w)); Assert.assertFalse(a2.matches(w)); } @Test public void testN() { SimpleString s1 = new SimpleString("usd.stock"); SimpleString s2 = new SimpleString("a.b.x.e"); SimpleString s3 = new SimpleString("*.stock.#"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Address w = new AddressImpl(s3); Assert.assertTrue(a1.matches(w)); Assert.assertFalse(a2.matches(w)); } @Test public void testO() { SimpleString s1 = new SimpleString("a.b.c.d"); SimpleString s2 = new SimpleString("a.b.x.e"); SimpleString s3 = new SimpleString("a.b.c.*"); Address a1 = new AddressImpl(s1); Address a2 = new AddressImpl(s2); Address w = new AddressImpl(s3); Assert.assertTrue(a1.matches(w)); Assert.assertFalse(a2.matches(w)); } @Test public void testP() { SimpleString s1 = new SimpleString("a.b.c.d"); SimpleString s3 = new SimpleString("a.b.c#"); Address a1 = new AddressImpl(s1); Address w = new AddressImpl(s3); Assert.assertFalse(a1.matches(w)); } @Test public void testQ() { SimpleString s1 = new SimpleString("a.b.c.d"); SimpleString s3 = new SimpleString("#a.b.c"); Address a1 = new AddressImpl(s1); Address w = new AddressImpl(s3); Assert.assertFalse(a1.matches(w)); } @Test public void testR() { SimpleString s1 = new SimpleString("a.b.c.d"); SimpleString s3 = new SimpleString("#*a.b.c"); Address a1 = new AddressImpl(s1); Address w = new AddressImpl(s3); Assert.assertFalse(a1.matches(w)); } @Test public void testS() { SimpleString s1 = new SimpleString("a.b.c.d"); SimpleString s3 = new SimpleString("a.b.c*"); Address a1 = new AddressImpl(s1); Address w = new AddressImpl(s3); Assert.assertFalse(a1.matches(w)); } @Test public void testT() { SimpleString s1 = new SimpleString("a.b.c.d"); SimpleString s3 = new SimpleString("*a.b.c"); Address a1 = new AddressImpl(s1); Address w = new AddressImpl(s3); Assert.assertFalse(a1.matches(w)); } @Test public void testU() { SimpleString s1 = new SimpleString("a.b.c.d"); SimpleString s3 = new SimpleString("*a.b.c"); Address a1 = new AddressImpl(s1); Address w = new AddressImpl(s3); Assert.assertFalse(a1.matches(w)); } }