SoyContextImpl implements SoyContext { @Override public SoyContext put(String key, Object value) { if (key.equals(SoyTemplateConstants.INJECTED_DATA) && !(value instanceof Map)) { throw new IllegalArgumentException("Injected data must be a Map"); } _map.put(key, value); return this; } SoyContextImpl();  SoyContextImpl(Map<String, Object> context);  SoyContextImpl(
		Map<String, Object> context, Set<String> restrictedVariables); @Override void clear(); @Override SoyContext clearInjectedData(); @Override boolean containsKey(Object key); @Override boolean containsValue(Object value); SoyTemplateRecord createInjectedSoyTemplateRecord(); SoyTemplateRecord createSoyTemplateRecord(); @Override Set<Entry<String, Object>> entrySet(); @Override Object get(Object key); Object getInjectedData(String key); @Override boolean isEmpty(); @Override Set<String> keySet(); @Override SoyContext put(String key, Object value); @Override SoyContext put(
		String key, UnsafeSupplier<?, Exception> unsafeSupplier); @Override void putAll(Map<? extends String, ?> m); @Override SoyContext putHTML(String key, String value); @Override SoyContext putInjectedData(String key, Object value); @Override Object remove(Object key); @Override SoyContext removeInjectedData(String key); @Override int size(); @Override Collection<Object> values();  }
@Test(expected = IllegalArgumentException.class) public void testPutThrowsWithInvalidInjectedData() { SoyContextImpl soyContextImpl = new SoyContextImpl(); soyContextImpl.put(SoyTemplateConstants.INJECTED_DATA, new Object()); }