### Question:
WebHooksBeanUtilsVelocityVariableResolver implements VariableResolver, Context { @Override public String resolve(String variableName) { if (variableName.startsWith(SECURE) && variableName.endsWith(SUFFIX)&& StringUtils.isNotBlank(variableName.substring(SECURE.length()))) { String secret = this.webHookSecretResolver.getSecret(this.sProject, variableName.substring(SECURE.length())); if (secret != null) { return secret; } } return (String)get(variableName); } WebHooksBeanUtilsVelocityVariableResolver(
			SProject sProject,
			WebHookContentObjectSerialiser webhookPayload, 
			Object javaBean, 
			ExtraParameters extraAndTeamCityProperties,
			WebHookSecretResolver webHookSecretResolver); @Override String resolve(String variableName); @Override Object put(String key, Object value); @Override Object get(String key); @Override boolean containsKey(Object key); @Override Object[] getKeys(); @Override Object remove(Object key);  }### Answer:
@Test public void testResolve() { WebHookContentObjectSerialiser webHookContentObjectSerialiser = new WebHookPayloadContent.SimpleSerialiser(); JavaBean javaBean = new JavaBean("bt123", "project01"); ExtraParameters extraParameters = new ExtraParameters(); VariableResolver variableResolver = new WebHooksBeanUtilsVelocityVariableResolver(null, webHookContentObjectSerialiser, javaBean, extraParameters, null); assertEquals("bt123", variableResolver.resolve("buildId")); assertEquals("project01", variableResolver.resolve("projectId")); }