1 package com.atlassian.vcache.internal;
2
3 import org.junit.Rule;
4 import org.junit.Test;
5 import org.junit.rules.ExpectedException;
6
7 import static org.hamcrest.Matchers.is;
8 import static org.junit.Assert.assertThat;
9
10 public class NameValidatorTest {
11 @Rule
12 public ExpectedException thrown = ExpectedException.none();
13
14 @Test
15 public void isValidKeyName_valid() throws Exception {
16 assertThat(NameValidator.isValidKeyName("abcdef"), is(true));
17 assertThat(NameValidator.isValidKeyName("1"), is(true));
18 assertThat(NameValidator.isValidKeyName("dot.dot"), is(true));
19 assertThat(NameValidator.isValidKeyName("slash/allow"), is(true));
20 assertThat(NameValidator.isValidKeyName("minus-minus"), is(true));
21 assertThat(NameValidator.isValidKeyName("under_score"), is(true));
22 assertThat(NameValidator.isValidKeyName("dollar$cents"), is(true));
23 }
24
25 @Test
26 public void isValidKeyName_invalid() throws Exception {
27 assertThat(NameValidator.isValidKeyName(null), is(false));
28 assertThat(NameValidator.isValidKeyName(""), is(false));
29 assertThat(NameValidator.isValidKeyName("pipe|may|be|used|as|the|separator"), is(false));
30 assertThat(NameValidator.isValidKeyName("no spaces"), is(false));
31 assertThat(NameValidator.isValidKeyName("(yet)"), is(false));
32 }
33
34 @Test
35 public void requireValidKeyName_valid() {
36 final String validated = NameValidator.requireValidKeyName("abc");
37 assertThat(validated, is("abc"));
38 }
39
40 @Test
41 public void requireValidKeyName_invalid() {
42 thrown.expect(IllegalArgumentException.class);
43 thrown.expectMessage("Invalid key name: I'll buy that for a $1");
44
45 NameValidator.requireValidKeyName("I'll buy that for a $1");
46 }
47
48 @Test
49 public void isValidCacheName_valid() throws Exception {
50 assertThat(NameValidator.isValidCacheName("abcdef"), is(true));
51 }
52
53 @Test
54 public void isValidCacheName_invalid() throws Exception {
55 assertThat(NameValidator.isValidCacheName("%%%"), is(false));
56 }
57
58 @Test
59 public void requireValidCacheName_valid() {
60 final String validated = NameValidator.requireValidCacheName("war$is-over");
61 assertThat(validated, is("war$is-over"));
62 }
63
64 @Test
65 public void requireValidCacheName_invalid() {
66 thrown.expect(IllegalArgumentException.class);
67 thrown.expectMessage("Invalid cache name: I'll buy that for a $2");
68
69 NameValidator.requireValidCacheName("I'll buy that for a $2");
70 }
71 }