package org.parosproxy.paros.core.scanner;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import java.util.Vector;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
public class KbUnitTest {
private static final String TEST_KEY = "key";
private static final String ANOTHER_KEY = "otherKey";
private static final Object TEST_OBJECT_1 = new Object();
private static final Object TEST_OBJECT_2 = new Object();
private static final Boolean TEST_BOOLEAN = Boolean.TRUE;
private static final String TEST_STRING = "Test";
Kb knowledgeBase;
@Before
public void setUp() throws Exception {
knowledgeBase = new Kb();
}
@Test
public void shouldStoreValueForGivenKey() {
// Given/When
knowledgeBase.add(TEST_KEY, TEST_OBJECT_1);
// Then
assertThat(knowledgeBase.get(TEST_KEY), is(equalTo(TEST_OBJECT_1)));
}
@Test
@Ignore
public void shouldStoreValueForGivenUriAndKey() {
fail("Not yet implemented");
}
@Test
public void shouldRetrieveStoredObjectsForGivenKey() {
// Given/When
knowledgeBase.add(TEST_KEY, TEST_OBJECT_1);
knowledgeBase.add(TEST_KEY, TEST_OBJECT_2);
// Then
Vector<Object> result = knowledgeBase.getList(TEST_KEY);
assertThat(result, hasSize(2));
assertThat(result, contains(TEST_OBJECT_1, TEST_OBJECT_2));
}
@Test
@Ignore
public void shouldRetrieveStoredObjectsForGivenUriAndKey() {
fail("Not yet implemented");
}
@Test
public void shouldRetrieveStoredBooleanForGivenKey() {
// Given/When
knowledgeBase.add(TEST_KEY, TEST_BOOLEAN);
// Then
assertThat(knowledgeBase.getBoolean(TEST_KEY), is(equalTo(TEST_BOOLEAN)));
}
@Test
@Ignore
public void shouldRetrieveStoredBooleanForGivenUriAndKey() {
fail("Not yet implemented");
}
@Test
public void shouldRetrieveStoredStringForGivenKey() {
// Given/When
knowledgeBase.add(TEST_KEY, TEST_STRING);
// Then
assertThat(knowledgeBase.getString(TEST_KEY), is(equalTo(TEST_STRING)));
}
@Test
@Ignore
public void shouldRetrieveStoredStringForGivenUriAndKey() {
fail("Not yet implemented");
}
@Test
public void shouldReturnNullWhenGivenKeyHasNoStoredValue() {
// Given/When
knowledgeBase.add(TEST_KEY, TEST_OBJECT_1);
// Then
assertThat(knowledgeBase.get(ANOTHER_KEY), is(nullValue()));
}
@Test
public void shouldReturnFalseWhenRetrievingNonBooleanValueAsBoolean() {
// Given/When
knowledgeBase.add(TEST_KEY, TEST_OBJECT_1);
// Then
assertThat(knowledgeBase.getBoolean(TEST_KEY), is(false));
}
@Test
public void shouldReturnNullWhenRetrievingNonStringValueAsString() {
// Given/When
knowledgeBase.add(TEST_KEY, TEST_OBJECT_1);
// Then
assertThat(knowledgeBase.getString(TEST_KEY), is(nullValue()));
}
}