/* * Copyright (c) 2008-2017, Hazelcast, Inc. All Rights Reserved. * * 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 com.hazelcast.client.impl; import com.hazelcast.nio.Address; import com.hazelcast.test.HazelcastParallelClassRunner; import com.hazelcast.test.HazelcastTestSupport; import com.hazelcast.test.annotation.ParallelTest; import com.hazelcast.test.annotation.QuickTest; import com.hazelcast.version.MemberVersion; import org.junit.BeforeClass; import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; import java.util.HashMap; import java.util.Map; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; @RunWith(HazelcastParallelClassRunner.class) @Category({QuickTest.class, ParallelTest.class}) public class MemberImplTest extends HazelcastTestSupport { private static final MemberVersion VERSION = MemberVersion.of("1.3.2"); private static Address address; @BeforeClass public static void setUp() throws Exception { address = new Address("127.0.0.1", 5701); } @Test public void testConstructor() { MemberImpl member = new MemberImpl(); assertNull(member.getAddress()); assertFalse(member.localMember()); assertFalse(member.isLiteMember()); } @Test public void testConstructor_withAddress() { MemberImpl member = new MemberImpl(address, VERSION); assertBasicMemberImplFields(member); assertFalse(member.isLiteMember()); } @Test public void testConstructor_withAddressAndUUid() { MemberImpl member = new MemberImpl(address, VERSION, "uuid2342"); assertBasicMemberImplFields(member); assertEquals("uuid2342", member.getUuid()); assertFalse(member.isLiteMember()); } @Test public void testConstructor_withAttributes() throws Exception { Map<String, Object> attributes = new HashMap<String, Object>(); attributes.put("stringKey", "value"); attributes.put("booleanKeyTrue", true); attributes.put("booleanKeyFalse", false); attributes.put("byteKey", Byte.MAX_VALUE); attributes.put("shortKey", Short.MAX_VALUE); attributes.put("intKey", Integer.MAX_VALUE); attributes.put("longKey", Long.MAX_VALUE); attributes.put("floatKey", Float.MAX_VALUE); attributes.put("doubleKey", Double.MAX_VALUE); MemberImpl member = new MemberImpl(address, VERSION, "uuid2342", attributes, true); assertBasicMemberImplFields(member); assertEquals("uuid2342", member.getUuid()); assertTrue(member.isLiteMember()); assertEquals("value", member.getStringAttribute("stringKey")); assertNull(member.getBooleanAttribute("booleanKey")); Boolean booleanValueTrue = member.getBooleanAttribute("booleanKeyTrue"); assertNotNull(booleanValueTrue); assertTrue(booleanValueTrue); Boolean booleanValueFalse = member.getBooleanAttribute("booleanKeyFalse"); assertNotNull(booleanValueFalse); assertFalse(booleanValueFalse); Byte byteValue = member.getByteAttribute("byteKey"); assertNotNull(byteValue); assertEquals(Byte.MAX_VALUE, byteValue.byteValue()); Short shortValue = member.getShortAttribute("shortKey"); assertNotNull(shortValue); assertEquals(Short.MAX_VALUE, shortValue.shortValue()); Integer intValue = member.getIntAttribute("intKey"); assertNotNull(intValue); assertEquals(Integer.MAX_VALUE, intValue.intValue()); Long longValue = member.getLongAttribute("longKey"); assertNotNull(longValue); assertEquals(Long.MAX_VALUE, longValue.longValue()); Float floatValue = member.getFloatAttribute("floatKey"); assertNotNull(floatValue); assertEquals(Float.MAX_VALUE, floatValue, 0.000001); Double doubleValue = member.getDoubleAttribute("doubleKey"); assertNotNull(doubleValue); assertEquals(Double.MAX_VALUE, doubleValue, 0.000001); } @Test public void testConstructor_withMemberImpl() { MemberImpl member = new MemberImpl(new MemberImpl(address, VERSION)); assertBasicMemberImplFields(member); } @Test(expected = UnsupportedOperationException.class) public void testSetStringAttribute() { MemberImpl member = new MemberImpl(address, VERSION); member.setStringAttribute("stringKey", "stringValue"); } @Test(expected = UnsupportedOperationException.class) public void testSetBooleanAttribute() { MemberImpl member = new MemberImpl(address, VERSION); member.setBooleanAttribute("booleanKeyTrue", true); } @Test(expected = UnsupportedOperationException.class) public void testSetByteAttribute() { MemberImpl member = new MemberImpl(address, VERSION); member.setByteAttribute("byteKey", Byte.MAX_VALUE); } @Test(expected = UnsupportedOperationException.class) public void testSetShortAttribute() { MemberImpl member = new MemberImpl(address, VERSION); member.setShortAttribute("shortKey", Short.MAX_VALUE); } @Test(expected = UnsupportedOperationException.class) public void testSetIntAttribute() { MemberImpl member = new MemberImpl(address, VERSION); member.setIntAttribute("intKey", Integer.MAX_VALUE); } @Test(expected = UnsupportedOperationException.class) public void testSetLongAttribute() { MemberImpl member = new MemberImpl(address, VERSION); member.setLongAttribute("longKey", Long.MAX_VALUE); } @Test(expected = UnsupportedOperationException.class) public void testSetFloatAttribute() { MemberImpl member = new MemberImpl(address, VERSION); member.setFloatAttribute("floatKey", Float.MAX_VALUE); } @Test(expected = UnsupportedOperationException.class) public void testSetDoubleAttribute() { MemberImpl member = new MemberImpl(address, VERSION); member.setDoubleAttribute("doubleKey", Double.MAX_VALUE); } @Test(expected = UnsupportedOperationException.class) public void testRemoveAttribute() { MemberImpl member = new MemberImpl(address, VERSION); member.removeAttribute("removeKey"); } private static void assertBasicMemberImplFields(MemberImpl member) { assertEquals(address, member.getAddress()); assertEquals(5701, member.getPort()); assertEquals("127.0.0.1", member.getInetAddress().getHostAddress()); assertNull(member.getLogger()); assertFalse(member.localMember()); assertEquals(1, member.getVersion().getMajor()); assertEquals(3, member.getVersion().getMinor()); assertEquals(2, member.getVersion().getPatch()); } }