@@ -0,0 +1,2556 @@
+/*%0A * The MIT License%0A *%0A * Copyright (c) 2017 Marcelo %22Ataxexe%22 Guimar%C3%A3es %3Cataxexe@devnull.tools%3E%0A *%0A * Permission  is hereby granted, free of charge, to any person obtaining%0A * a  copy  of  this  software  and  associated  documentation files (the%0A * %22Software%22),  to  deal  in the Software without restriction, including%0A * without  limitation  the  rights to use, copy, modify, merge, publish,%0A * distribute,  sublicense,  and/or  sell  copies of the Software, and to%0A * permit  persons to whom the Software is furnished to do so, subject to%0A * the following conditions:%0A * The  above  copyright  notice  and  this  permission  notice  shall be%0A * included  in  all  copies  or  substantial  portions  of the Software.%0A *%0A * THE  SOFTWARE  IS  PROVIDED  %22AS  IS%22,  WITHOUT  WARRANTY OF ANY KIND,%0A * EXPRESS  OR  IMPLIED,  INCLUDING  BUT NOT LIMITED TO THE WARRANTIES OF%0A * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.%0A * IN  NO  EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY%0A * CLAIM,  DAMAGES  OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,%0A * TORT  OR  OTHERWISE,  ARISING  FROM,  OUT OF OR IN CONNECTION WITH THE%0A * SOFTWARE   OR   THE   USE   OR   OTHER   DEALINGS  IN  THE  SOFTWARE.%0A */%0A%0Apackage tools.devnull.boteco.message;%0A%0Aimport org.junit.Test;%0Aimport tools.devnull.kodo.Spec;%0A%0Aimport java.util.Objects;%0Aimport java.util.function.Predicate;%0A%0Aimport static tools.devnull.kodo.Expectation.to;%0A%0Apublic class SendableTest %7B%0A%0A  @Test%0A  public void testHelper() %7B%0A    Spec.given(Sendable.message(%22lorem ipsum%22))%0A        .expect(Sendable::message, to().be(%22lorem ipsum%22))%0A        .expect(Sendable::title, to(beNull()))%0A        .expect(Sendable::url, to(beNull()))%0A        .expect(Sendable::priority, to().be(Priority.NORMAL));%0A  %7D%0A%0A  @Test%0A  public void testAppend() %7B%0A    Spec.given(Sendable.message(%22lorem ipsum%22).append(%22 dolor sit amet%22))%0A        .expect(Sendable::message, to().be(%22lorem ipsum dolor sit amet%22))%0A        .expect(Sendable::title, to(beNull()))%0A        .expect(Sendable::url, to(beNull()))%0A        .expect(Sendable::priority, to().be(Priority.NORMAL));%0A  %7D%0A%0A  @Test%0A  public void testPrepend() %7B%0A    Spec.given(Sendable.message(%22dolor sit amet%22).prepend(%22lorem ipsum %22))%0A        .expect(Sendable::message, to().be(%22lorem ipsum dolor sit amet%22))%0A        .expect(Sendable::title, to(beNull()))%0A        .expect(Sendable::url, to(beNull()))%0A        .expect(Sendable::priority, to().be(Priority.NORMAL));%0A  %7D%0A%0A  private Predicate%3CString%3E beNull() %7B%0A    return Objects::isNull;%0A  %7D%0A%0A%7D%0A

add tests