1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.hadoop.hbase.util;
18
19 import static org.junit.Assert.assertFalse;
20 import static org.junit.Assert.assertTrue;
21
22 import java.util.HashSet;
23 import java.util.Random;
24 import java.util.Set;
25
26 import org.apache.hadoop.hbase.SmallTests;
27 import org.junit.Test;
28 import org.junit.experimental.categories.Category;
29
30 @Category(SmallTests.class)
31 public class TestLoadTestKVGenerator {
32
33 private static final int MIN_LEN = 10;
34 private static final int MAX_LEN = 20;
35
36 private Random rand = new Random(28937293L);
37 private LoadTestKVGenerator gen = new LoadTestKVGenerator(MIN_LEN, MAX_LEN);
38
39 @Test
40 public void testValueLength() {
41 for (int i = 0; i < 1000; ++i) {
42 byte[] v = gen.generateRandomSizeValue(i,
43 String.valueOf(rand.nextInt()));
44 assertTrue(MIN_LEN <= v.length);
45 assertTrue(v.length <= MAX_LEN);
46 }
47 }
48
49 @Test
50 public void testVerification() {
51 for (int i = 0; i < 1000; ++i) {
52 for (int qualIndex = 0; qualIndex < 20; ++qualIndex) {
53 String qual = String.valueOf(qualIndex);
54 byte[] v = gen.generateRandomSizeValue(i, qual);
55 String rowKey = LoadTestKVGenerator.md5PrefixedKey(i);
56 assertTrue(LoadTestKVGenerator.verify(rowKey, qual, v));
57 v[0]++;
58 assertFalse(LoadTestKVGenerator.verify(rowKey, qual, v));
59 }
60 }
61 }
62
63 @Test
64 public void testCorrectAndUniqueKeys() {
65 Set<String> keys = new HashSet<String>();
66 for (int i = 0; i < 1000; ++i) {
67 String k = LoadTestKVGenerator.md5PrefixedKey(i);
68 assertFalse(keys.contains(k));
69 assertTrue(k.endsWith("-" + i));
70 keys.add(k);
71 }
72 }
73
74 }