### Question:
DefaultTofuCompiler implements TofuCompiler { @Override public SoyTofu compile(@Nullable final Collection<URL> urls) throws IOException { Preconditions.checkNotNull("compileTimeGlobalModelResolver", compileTimeGlobalModelResolver); if (urls == null || urls.isEmpty()) { throw new IOException("Unable to compile, no urls found"); } logger.debug("SoyTofu compilation of templates:" + urls.size()); final long time1 = System.currentTimeMillis(); final SoyFileSet.Builder sfsBuilder = new SoyFileSet.Builder(); for (final URL url : urls) { sfsBuilder.add(url); } addCompileTimeGlobalModel(sfsBuilder); final SoyFileSet soyFileSet = sfsBuilder.build(); final SoyTofuOptions soyTofuOptions = createSoyTofuOptions(); final SoyTofu soyTofu = soyFileSet.compileToTofu(soyTofuOptions); final long time2 = System.currentTimeMillis(); logger.debug("SoyTofu compilation complete." + (time2 - time1) + " ms"); return soyTofu; }  @Override SoyTofu compile(@Nullable final Collection<URL> urls); @Override final Optional<String> compileToJsSrc(@Nullable final URL url, @Nullable final SoyMsgBundle soyMsgBundle); @Override Collection<String> compileToJsSrc(Collection<URL> templates, @Nullable SoyMsgBundle soyMsgBundle); void setHotReloadMode(final boolean hotReloadMode); void setCompileTimeGlobalModelResolver(final CompileTimeGlobalModelResolver compileTimeGlobalModelResolver); void setSoyJsSrcOptions(final SoyJsSrcOptions soyJsSrcOptions); boolean isHotReloadMode(); boolean isHotReloadModeOff(); SoyJsSrcOptions getSoyJsSrcOptions(); SoyTofuOptions getSoyTofuOptions(); void setSoyTofuOptions(SoyTofuOptions soyTofuOptions);  }### Answer:
@Test public void testCompileSoyToBinaryWithEmptyCompileTimeModel() throws Exception { when(compileTimeGlobalModelResolver.resolveData()).thenReturn(Optional.<SoyMapData>absent()); final URL template1 = getClass().getClassLoader().getResource("templates/template1.soy"); final SoyTofu tofu = defaultTofuCompiler.compile(Lists.newArrayList(template1)); Assert.assertNotNull(tofu); }
@Test public void testCompileSoyToJsWithCompileTimeModel() throws Exception { final SoyMapData soyMapData = new SoyMapData(); soyMapData.put("test1", "test2"); when(compileTimeGlobalModelResolver.resolveData()).thenReturn(Optional.of(soyMapData)); final URL template1 = getClass().getClassLoader().getResource("templates/template1.soy"); final SoyTofu tofu = defaultTofuCompiler.compile(Lists.newArrayList(template1)); Assert.assertNotNull("tofu object should not be null", tofu); }