/*
* 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.util;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.instance.Node;
import com.hazelcast.instance.TestUtil;
import com.hazelcast.test.HazelcastSerialClassRunner;
import com.hazelcast.test.HazelcastTestSupport;
import com.hazelcast.test.TestHazelcastInstanceFactory;
import com.hazelcast.test.annotation.QuickTest;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import java.lang.management.ManagementFactory;
import java.lang.management.OperatingSystemMXBean;
import java.lang.management.RuntimeMXBean;
import java.util.Map;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
@RunWith(HazelcastSerialClassRunner.class)
@Category(QuickTest.class)
public class PhoneHomeTest extends HazelcastTestSupport {
private TestHazelcastInstanceFactory factory;
private HazelcastInstance hz1;
@After
public void cleanup() {
factory.terminateAll();
}
@Before
public void init() {
factory = new TestHazelcastInstanceFactory(2);
hz1 = factory.newHazelcastInstance();
}
@Test
public void testPhoneHomeParameters() throws Exception {
Node node1 = TestUtil.getNode(hz1);
PhoneHome phoneHome = new PhoneHome();
sleepAtLeastMillis(1);
Map<String, String> parameters = phoneHome.phoneHome(node1, "test_version", false);
RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();
OperatingSystemMXBean osMxBean = ManagementFactory.getOperatingSystemMXBean();
assertEquals(parameters.get("version"), "test_version");
assertEquals(parameters.get("m"), node1.getLocalMember().getUuid());
assertEquals(parameters.get("e"), "false");
assertEquals(parameters.get("l"), "NULL");
assertEquals(parameters.get("p"), "source");
assertEquals(parameters.get("crsz"), "A");
assertEquals(parameters.get("cssz"), "A");
assertEquals(parameters.get("hdgb"), "0");
assertEquals(parameters.get("ccpp"), "0");
assertEquals(parameters.get("cdn"), "0");
assertEquals(parameters.get("cjv"), "0");
assertEquals(parameters.get("cnjs"), "0");
assertEquals(parameters.get("cpy"), "0");
assertEquals(parameters.get("jetv"), "");
assertFalse(Integer.parseInt(parameters.get("cuptm")) < 0);
assertNotEquals(parameters.get("nuptm"), "0");
assertNotEquals(parameters.get("nuptm"), parameters.get("cuptm"));
assertEquals(parameters.get("osn"), osMxBean.getName());
assertEquals(parameters.get("osa"), osMxBean.getArch());
assertEquals(parameters.get("osv"), osMxBean.getVersion());
assertEquals(parameters.get("jvmn"), runtimeMxBean.getVmName());
assertEquals(parameters.get("jvmv"), System.getProperty("java.version"));
}
@Test
public void testConvertToLetter() throws Exception {
PhoneHome phoneHome = new PhoneHome();
assertEquals("A", phoneHome.convertToLetter(4));
assertEquals("B", phoneHome.convertToLetter(9));
assertEquals("C", phoneHome.convertToLetter(19));
assertEquals("D", phoneHome.convertToLetter(39));
assertEquals("E", phoneHome.convertToLetter(59));
assertEquals("F", phoneHome.convertToLetter(99));
assertEquals("G", phoneHome.convertToLetter(149));
assertEquals("H", phoneHome.convertToLetter(299));
assertEquals("J", phoneHome.convertToLetter(599));
assertEquals("I", phoneHome.convertToLetter(1000));
}
}