@Test public void testGetMappingExists() throws Exception { ServerStore store = newStore(); populateStore(store); Chain chain = store.get(1); assertThat(chain.isEmpty(), is(false)); assertChainAndReverseChainOnlyHave(chain, 1); }
@Test public void testGetAndAppendMappingExists() throws Exception { ServerStore store = newStore(); populateStore(store); Chain chain = store.getAndAppend(1, createPayload(22)); for (Element element : chain) { assertThat(readPayLoad(element.getPayload()), is(Long.valueOf(1))); } chain = store.get(1); assertChainAndReverseChainOnlyHave(chain, 1, 22); }
@Test public void testAppendMappingExists() throws Exception { ServerStore store = newStore(); populateStore(store); store.append(2, createPayload(22)); Chain chain = store.get(2); assertThat(chain.isEmpty(), is(false)); assertChainAndReverseChainOnlyHave(chain, 2, 22); }
@Test public void testReplaceAtHeadSucceedsMappingExistsHeadMatchesStrictly() throws Exception { ServerStore store = newStore(); populateStore(store); Chain existingMapping = store.get(1); store.replaceAtHead(1, existingMapping, chainBuilder.build(elementBuilder.build(createPayload(11)))); Chain chain = store.get(1); assertChainAndReverseChainOnlyHave(chain, 11); store.append(2, createPayload(22)); store.append(2, createPayload(222)); existingMapping = store.get(2); store.replaceAtHead(2, existingMapping, chainBuilder.build(elementBuilder.build(createPayload(2222)))); chain = store.get(2); assertChainAndReverseChainOnlyHave(chain, 2222); }
@Test public void testReplaceAtHeadIgnoredMappingExistsHeadMisMatch() throws Exception { ServerStore store = newStore(); populateStore(store); store.append(1, createPayload(11)); store.append(1, createPayload(111)); Chain mappingReadFirst = store.get(1); store.replaceAtHead(1, mappingReadFirst, chainBuilder.build(elementBuilder.build(createPayload(111)))); Chain current = store.get(1); assertChainAndReverseChainOnlyHave(current, 111); store.append(1, createPayload(1111)); store.replaceAtHead(1, mappingReadFirst, chainBuilder.build(elementBuilder.build(createPayload(11111)))); Chain toVerify = store.get(1); assertChainAndReverseChainOnlyHave(toVerify, 111, 1111); }
@Test public void testReplaceAtHeadSucceedsMappingExistsHeadMatches() throws Exception { ServerStore store = newStore(); populateStore(store); Chain existingMapping = store.get(1); store.append(1, createPayload(11)); store.replaceAtHead(1, existingMapping, chainBuilder.build(elementBuilder.build(createPayload(111)))); Chain chain = store.get(1); assertChainAndReverseChainOnlyHave(chain, 111, 11); store.append(2, createPayload(22)); existingMapping = store.get(2); store.append(2, createPayload(222)); store.replaceAtHead(2, existingMapping, chainBuilder.build(elementBuilder.build(createPayload(2222)))); chain = store.get(2); assertChainAndReverseChainOnlyHave(chain, 2222, 222); }