/* * The Alluxio Open Foundation licenses this work under the Apache License, version 2.0 * (the "License"). You may not use this work except in compliance with the License, which is * available at www.apache.org/licenses/LICENSE-2.0 * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied, as more fully set forth in the License. * * See the NOTICE file distributed with this work for information regarding copyright ownership. */ package alluxio.worker.block; import org.junit.Assert; import org.junit.Test; /** * Unit tests for {@link BlockStoreLocation}. */ public final class BlockStoreLocationTest { /** * Tests that a new location can be created with the constructor. */ @Test public void newLocation() { String tierAlias = "SSD"; int dirIndex = 3; BlockStoreLocation loc = new BlockStoreLocation(tierAlias, dirIndex); Assert.assertNotNull(loc); Assert.assertEquals(tierAlias, loc.tierAlias()); Assert.assertEquals(dirIndex, loc.dir()); } /** * Tests the {@link BlockStoreLocation#belongsTo(BlockStoreLocation)} method. */ @Test public void testBelongTo() { BlockStoreLocation anyTier = BlockStoreLocation.anyTier(); BlockStoreLocation anyDirInTierMEM = BlockStoreLocation.anyDirInTier("MEM"); BlockStoreLocation anyDirInTierHDD = BlockStoreLocation.anyDirInTier("HDD"); BlockStoreLocation dirInMEM = new BlockStoreLocation("MEM", 1); BlockStoreLocation dirInHDD = new BlockStoreLocation("HDD", 2); Assert.assertTrue(anyTier.belongsTo(anyTier)); Assert.assertFalse(anyTier.belongsTo(anyDirInTierMEM)); Assert.assertFalse(anyTier.belongsTo(anyDirInTierHDD)); Assert.assertFalse(anyTier.belongsTo(dirInMEM)); Assert.assertFalse(anyTier.belongsTo(dirInHDD)); Assert.assertTrue(anyDirInTierMEM.belongsTo(anyTier)); Assert.assertTrue(anyDirInTierMEM.belongsTo(anyDirInTierMEM)); Assert.assertFalse(anyDirInTierMEM.belongsTo(anyDirInTierHDD)); Assert.assertFalse(anyDirInTierMEM.belongsTo(dirInMEM)); Assert.assertFalse(anyDirInTierMEM.belongsTo(dirInHDD)); Assert.assertTrue(anyDirInTierHDD.belongsTo(anyTier)); Assert.assertFalse(anyDirInTierHDD.belongsTo(anyDirInTierMEM)); Assert.assertTrue(anyDirInTierHDD.belongsTo(anyDirInTierHDD)); Assert.assertFalse(anyDirInTierHDD.belongsTo(dirInMEM)); Assert.assertFalse(anyDirInTierHDD.belongsTo(dirInHDD)); Assert.assertTrue(dirInMEM.belongsTo(anyTier)); Assert.assertTrue(dirInMEM.belongsTo(anyDirInTierMEM)); Assert.assertFalse(dirInMEM.belongsTo(anyDirInTierHDD)); Assert.assertTrue(dirInMEM.belongsTo(dirInMEM)); Assert.assertFalse(dirInMEM.belongsTo(dirInHDD)); Assert.assertTrue(dirInHDD.belongsTo(anyTier)); Assert.assertFalse(dirInHDD.belongsTo(anyDirInTierMEM)); Assert.assertTrue(dirInHDD.belongsTo(anyDirInTierHDD)); Assert.assertFalse(dirInHDD.belongsTo(dirInMEM)); Assert.assertTrue(dirInHDD.belongsTo(dirInHDD)); } /** * Tests the {@link BlockStoreLocation#equals(Object)} method. */ @Test public void equals() { BlockStoreLocation anyTier = BlockStoreLocation.anyTier(); BlockStoreLocation anyDirInTierMEM = BlockStoreLocation.anyDirInTier("MEM"); BlockStoreLocation anyDirInTierHDD = BlockStoreLocation.anyDirInTier("HDD"); BlockStoreLocation dirInMEM = new BlockStoreLocation("MEM", 1); BlockStoreLocation dirInHDD = new BlockStoreLocation("HDD", 2); Assert.assertEquals(anyTier, BlockStoreLocation.anyTier()); // Equals Assert.assertNotEquals(anyDirInTierMEM, BlockStoreLocation.anyTier()); Assert.assertNotEquals(anyDirInTierHDD, BlockStoreLocation.anyTier()); Assert.assertNotEquals(dirInMEM, BlockStoreLocation.anyTier()); Assert.assertNotEquals(dirInHDD, BlockStoreLocation.anyTier()); Assert.assertNotEquals(anyTier, BlockStoreLocation.anyDirInTier("MEM")); Assert.assertEquals(anyDirInTierMEM, BlockStoreLocation.anyDirInTier("MEM")); // Equals Assert.assertNotEquals(anyDirInTierHDD, BlockStoreLocation.anyDirInTier("MEM")); Assert.assertNotEquals(dirInMEM, BlockStoreLocation.anyDirInTier("MEM")); Assert.assertNotEquals(dirInHDD, BlockStoreLocation.anyDirInTier("MEM")); Assert.assertNotEquals(anyTier, BlockStoreLocation.anyDirInTier("HDD")); Assert.assertNotEquals(anyDirInTierMEM, BlockStoreLocation.anyDirInTier("HDD")); Assert.assertEquals(anyDirInTierHDD, BlockStoreLocation.anyDirInTier("HDD")); // Equals Assert.assertNotEquals(dirInMEM, BlockStoreLocation.anyDirInTier("HDD")); Assert.assertNotEquals(dirInHDD, BlockStoreLocation.anyDirInTier("HDD")); BlockStoreLocation loc1 = new BlockStoreLocation("MEM", 1); Assert.assertNotEquals(anyTier, loc1); Assert.assertNotEquals(anyDirInTierMEM, loc1); Assert.assertNotEquals(anyDirInTierHDD, loc1); Assert.assertEquals(dirInMEM, loc1); // Equals Assert.assertNotEquals(dirInHDD, loc1); BlockStoreLocation loc2 = new BlockStoreLocation("HDD", 2); Assert.assertNotEquals(anyTier, loc2); Assert.assertNotEquals(anyDirInTierMEM, loc2); Assert.assertNotEquals(anyDirInTierHDD, loc2); Assert.assertNotEquals(dirInMEM, loc2); Assert.assertEquals(dirInHDD, loc2); // Equals } }