| /* |
| * 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.geode.distributed.internal.membership.gms; |
| |
| import static org.assertj.core.api.Assertions.assertThat; |
| |
| import java.net.InetAddress; |
| import java.net.UnknownHostException; |
| import java.util.Arrays; |
| |
| import org.junit.Before; |
| import org.junit.Test; |
| |
| import org.apache.geode.distributed.internal.membership.gms.api.MemberData; |
| import org.apache.geode.distributed.internal.membership.gms.api.MemberDataBuilder; |
| import org.apache.geode.distributed.internal.membership.gms.api.MemberIdentifier; |
| import org.apache.geode.internal.net.SocketCreator; |
| import org.apache.geode.internal.serialization.Version; |
| |
| public class MemberIdentifierFactoryImplTest { |
| |
| private MemberIdentifierFactoryImpl factory; |
| |
| @Before |
| public void setup() { |
| factory = new MemberIdentifierFactoryImpl(); |
| } |
| |
| @Test |
| public void testRemoteHost() throws UnknownHostException { |
| InetAddress localhost = SocketCreator.getLocalHost(); |
| MemberData memberData = |
| MemberDataBuilder.newBuilder(localhost, localhost.getHostName()).build(); |
| MemberIdentifier data = factory.create(memberData); |
| assertThat(data.getInetAddress()).isEqualTo(localhost); |
| assertThat(data.getHostName()).isEqualTo(localhost.getHostName()); |
| } |
| |
| @Test |
| public void testNewBuilderForLocalHost() throws UnknownHostException { |
| InetAddress localhost = SocketCreator.getLocalHost(); |
| MemberData memberData = MemberDataBuilder.newBuilderForLocalHost("hostname").build(); |
| MemberIdentifier data = factory.create(memberData); |
| assertThat(data.getInetAddress()).isEqualTo(localhost); |
| assertThat(data.getHostName()).isEqualTo("hostname"); |
| } |
| |
| @Test |
| public void testSetMembershipPort() { |
| MemberData memberData = MemberDataBuilder.newBuilderForLocalHost("hostname") |
| .setMembershipPort(1234).build(); |
| MemberIdentifier data = factory.create(memberData); |
| assertThat(data.getMembershipPort()).isEqualTo(1234); |
| } |
| |
| @Test |
| public void testSetVmKind() { |
| MemberData memberData = MemberDataBuilder.newBuilderForLocalHost("hostname") |
| .setVmKind(12).build(); |
| MemberIdentifier data = factory.create(memberData); |
| assertThat(data.getVmKind()).isEqualTo((byte) 12); |
| } |
| |
| @Test |
| public void testSetVmViewId() { |
| MemberData memberData = MemberDataBuilder.newBuilderForLocalHost("hostname") |
| .setVmViewId(1234).build(); |
| MemberIdentifier data = factory.create(memberData); |
| assertThat(data.getVmViewId()).isEqualTo(1234); |
| } |
| |
| @Test |
| public void testSetGroups() { |
| String[] groups = new String[] {"group1", "group2"}; |
| MemberData memberData = MemberDataBuilder.newBuilderForLocalHost("hostname") |
| .setGroups(groups).build(); |
| MemberIdentifier data = factory.create(memberData); |
| assertThat(data.getGroups()).isEqualTo(Arrays.asList(groups)); |
| } |
| |
| @Test |
| public void testSetDurableId() { |
| MemberData memberData = MemberDataBuilder.newBuilderForLocalHost("hostname") |
| .setDurableId("myId").build(); |
| MemberIdentifier data = factory.create(memberData); |
| assertThat(data.getMemberData().getDurableId()).isEqualTo("myId"); |
| } |
| |
| @Test |
| public void testSetVersionOrdinal() { |
| MemberData memberData = MemberDataBuilder.newBuilderForLocalHost("hostname") |
| .setVersionOrdinal(Version.CURRENT_ORDINAL).build(); |
| MemberIdentifier data = factory.create(memberData); |
| assertThat(data.getVersionOrdinal()).isEqualTo(Version.CURRENT_ORDINAL); |
| } |
| |
| @Test |
| public void membersAreEqual() { |
| MemberData memberData = MemberDataBuilder.newBuilderForLocalHost("hostname") |
| .setMembershipPort(1).build(); |
| MemberIdentifier member1 = factory.create(memberData); |
| memberData = MemberDataBuilder.newBuilderForLocalHost("hostname") |
| .setMembershipPort(1).build(); |
| MemberIdentifier member2 = factory.create(memberData); |
| assertThat(factory.getComparator().compare(member1, member2)).isZero(); |
| } |
| |
| @Test |
| public void membersAreNotEqual() { |
| MemberData memberData = MemberDataBuilder.newBuilderForLocalHost("hostname") |
| .setMembershipPort(1).build(); |
| MemberIdentifier member1 = factory.create(memberData); |
| memberData = MemberDataBuilder.newBuilderForLocalHost("hostname") |
| .setMembershipPort(2).build(); |
| MemberIdentifier member2 = factory.create(memberData); |
| assertThat(factory.getComparator().compare(member1, member2)).isLessThan(0); |
| assertThat(factory.getComparator().compare(member2, member1)).isGreaterThan(0); |
| } |
| } |