/* vim: set ts=2 et sw=2 cindent fo=qroca: */ package com.globant.katari.jsmodule.domain; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.assertThat; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.junit.Test; /** Represents the Test Cases for the {@link BundleCache}. * * @author ivan.bedecarats@globant.com. */ public class BundleCacheTest { @Test public void findKey_fileNotCached() { List<String> files = Arrays.asList("a.js", "b.js"); BundleCache cache = new BundleCache(); String key = cache.findKey(files); assertThat(key, is(nullValue())); } @Test public void store() { List<String> files = Arrays.asList( "/com/globant/katari/jsmodule/testfile/compress-test-1.js", "/com/globant/katari/jsmodule/testfile/compress-test-2.js"); String content = "var testFunction=function(){var a=10};" + "var thisFunction=function(b,c,a){var d=1;return d\n};"; BundleCache cache = new BundleCache(); String key = cache.store(files, content); assertThat(key, is("7784ff6c556abbc9a5af856260931dd0.js")); } @Test public void store_diffentKeysDifferentFiles() { List<String> file1 = Arrays.asList( "/com/globant/katari/jsmodule/testfile/compress-test-1.js"); String content1 = "var testFunction=function(){var a=10};"; List<String> file2 = Arrays.asList( "/com/globant/katari/jsmodule/testfile/compress-test-2.js"); String content2 = "var thisFunction=function(b,c,a){var d=1;return d\n};"; BundleCache cache = new BundleCache(); String key1 = cache.store(file1, content1); assertThat(key1, is("fdb0dfbb82819f9ff8520500bab35710.js")); String key2 = cache.store(file2, content2); assertThat(key2, is("3f38f7ff5855779821b22e1d54662851.js")); assertThat(!key1.equals(key2), is(true)); } @Test public void findKey() { List<String> files = Arrays.asList( "/com/globant/katari/jsmodule/testfile/compress-test-1.js", "/com/globant/katari/jsmodule/testfile/compress-test-2.js"); String content = "var testFunction=function(){var a=10};" + "var thisFunction=function(b,c,a){var d=1;return d\n};"; BundleCache cache = new BundleCache(); String key = cache.store(files, content); String returnedKey = cache.findKey(files); assertThat(returnedKey, is(key)); } @Test public void findContent() { List<String> files = Arrays.asList( "/com/globant/katari/jsmodule/testfile/compress-test-1.js", "/com/globant/katari/jsmodule/testfile/compress-test-2.js"); String content = "var testFunction=function(){var a=10};" + "var thisFunction=function(b,c,a){var d=1;return d\n};"; BundleCache cache = new BundleCache(); cache.store(files, content); String key = "7784ff6c556abbc9a5af856260931dd0.js"; String returnedContent = cache.findContent(key); assertThat(returnedContent, is(content)); } @Test (expected = RuntimeException.class) public void findContent_nullKey() { BundleCache cache = new BundleCache(); cache.findContent(null); } @Test (expected = RuntimeException.class) public void findContent_emptyKey() { BundleCache cache = new BundleCache(); cache.findContent(new String()); } @Test (expected = RuntimeException.class) public void store_nullFiles() { BundleCache cache = new BundleCache(); cache.store(null, "content"); } @Test (expected = RuntimeException.class) public void store_emptyFiles() { BundleCache cache = new BundleCache(); cache.store(new ArrayList<String>(), "content"); } @Test (expected = RuntimeException.class) public void store_nullContent() { BundleCache cache = new BundleCache(); List<String> files = Arrays.asList( "/com/globant/katari/jsmodule/testfile/compress-test-1.js", "/com/globant/katari/jsmodule/testfile/compress-test-2.js"); cache.store(files, null); } @Test (expected = RuntimeException.class) public void store_emptyContent() { BundleCache cache = new BundleCache(); List<String> files = Arrays.asList( "/com/globant/katari/jsmodule/testfile/compress-test-1.js", "/com/globant/katari/jsmodule/testfile/compress-test-2.js"); cache.store(files, new String()); } @Test (expected = RuntimeException.class) public void findkey_nullFiles() { BundleCache cache = new BundleCache(); cache.findKey(null); } @Test (expected = RuntimeException.class) public void findkey_emptyFiles() { BundleCache cache = new BundleCache(); cache.findKey(new ArrayList<String>()); } }