### Question:
StringConditionsImpl extends AbstractObjectConditions<String> implements StringConditions { @Override public boolean contains(CharSequence charSequence) { return verify(input -> { if (input == null) { return false; } return input.contains(charSequence); }); } StringConditionsImpl(String string);  StringConditionsImpl(String string, boolean negation); @Override @Negation StringConditionsImpl not(); @Override boolean contains(CharSequence charSequence); @Override boolean startsWith(String prefix); @Override boolean endsWith(String suffix); @Override boolean equalTo(String anotherString); @Override boolean equalToIgnoreCase(String anotherString); @Override boolean matches(String regex); @Override boolean matches(Pattern pattern);  }### Answer:
@Test public void shouldReturnTrueIfContainsString() { StringConditions stringConditions = new StringConditionsImpl("Some magical text."); assertThat(stringConditions.contains("magical")).isTrue(); }
@Test public void shouldReturnFalseIsNotContainsString() { StringConditions stringConditions = new StringConditionsImpl("Some magical text."); assertThat(stringConditions.contains("element")).isFalse(); }
@Test public void shouldReturnFalseForContainsIfTargetStringIsNull() { StringConditions stringConditions = new StringConditionsImpl(null); assertThat(stringConditions.contains("magical")).isFalse(); }