/*
* 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.monitor.impl;
import com.eclipsesource.json.JsonObject;
import com.hazelcast.cache.CacheStatistics;
import com.hazelcast.monitor.NearCacheStats;
import com.hazelcast.test.HazelcastParallelClassRunner;
import com.hazelcast.test.annotation.ParallelTest;
import com.hazelcast.test.annotation.QuickTest;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@RunWith(HazelcastParallelClassRunner.class)
@Category({QuickTest.class, ParallelTest.class})
public class LocalCacheStatsImplTest {
@Test
public void testDefaultConstructor() {
LocalCacheStatsImpl localCacheStats = new LocalCacheStatsImpl();
assertEquals(0, localCacheStats.getCreationTime());
assertEquals(0, localCacheStats.getLastUpdateTime());
assertEquals(0, localCacheStats.getLastAccessTime());
assertEquals(0, localCacheStats.getOwnedEntryCount());
assertEquals(0, localCacheStats.getCacheHits());
assertEquals(0, localCacheStats.getCacheHitPercentage(), 0.0001);
assertEquals(0, localCacheStats.getCacheMisses());
assertEquals(0, localCacheStats.getCacheMissPercentage(), 0.0001);
assertEquals(0, localCacheStats.getCachePuts());
assertEquals(0, localCacheStats.getCacheGets());
assertEquals(0, localCacheStats.getCacheRemovals());
assertEquals(0, localCacheStats.getCacheEvictions());
assertEquals(0, localCacheStats.getAverageGetTime(), 0.0001);
assertEquals(0, localCacheStats.getAveragePutTime(), 0.0001);
assertEquals(0, localCacheStats.getAverageRemoveTime(), 0.0001);
assertEquals(0, localCacheStats.getCreationTime());
assertNotNull(localCacheStats.toString());
}
@Test
public void testSerialization() {
CacheStatistics cacheStatistics = new CacheStatistics() {
@Override
public long getCreationTime() {
return 1986;
}
@Override
public long getLastUpdateTime() {
return 2014;
}
@Override
public long getLastAccessTime() {
return 2015;
}
@Override
public long getOwnedEntryCount() {
return 1000;
}
@Override
public long getCacheHits() {
return 127;
}
@Override
public float getCacheHitPercentage() {
return 12.5f;
}
@Override
public long getCacheMisses() {
return 5;
}
@Override
public float getCacheMissPercentage() {
return 11.4f;
}
@Override
public long getCacheGets() {
return 6;
}
@Override
public long getCachePuts() {
return 7;
}
@Override
public long getCacheRemovals() {
return 8;
}
@Override
public long getCacheEvictions() {
return 9;
}
@Override
public float getAverageGetTime() {
return 23.42f;
}
@Override
public float getAveragePutTime() {
return 42.23f;
}
@Override
public float getAverageRemoveTime() {
return 127.45f;
}
@Override
public NearCacheStats getNearCacheStatistics() {
return null;
}
};
LocalCacheStatsImpl localCacheStats = new LocalCacheStatsImpl(cacheStatistics);
JsonObject serialized = localCacheStats.toJson();
LocalCacheStatsImpl deserialized = new LocalCacheStatsImpl();
deserialized.fromJson(serialized);
assertEquals(1986, deserialized.getCreationTime());
assertEquals(2014, deserialized.getLastUpdateTime());
assertEquals(2015, deserialized.getLastAccessTime());
assertEquals(1000, deserialized.getOwnedEntryCount());
assertEquals(127, deserialized.getCacheHits());
assertEquals(12.5f, deserialized.getCacheHitPercentage(), 0.0001);
assertEquals(5, deserialized.getCacheMisses());
assertEquals(11.4f, deserialized.getCacheMissPercentage(), 0.0001);
assertEquals(6, deserialized.getCacheGets());
assertEquals(7, deserialized.getCachePuts());
assertEquals(8, deserialized.getCacheRemovals());
assertEquals(9, deserialized.getCacheEvictions());
assertEquals(23.42f, deserialized.getAverageGetTime(), 0.0001);
assertEquals(42.23f, deserialized.getAveragePutTime(), 0.0001);
assertEquals(127.45f, deserialized.getAverageRemoveTime(), 0.0001);
assertTrue(deserialized.getCreationTime() > 0);
assertNotNull(deserialized.toString());
}
}