Skip to content

Commit

Permalink
Merge remote-tracking branch 'fork/611'
Browse files Browse the repository at this point in the history
  • Loading branch information
rultor committed May 27, 2015
2 parents 738f1e9 + 5e69915 commit 4e6e339
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 4 deletions.
26 changes: 22 additions & 4 deletions netbout-client/src/main/java/com/netbout/client/RtAlias.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,13 @@
import com.jcabi.aspects.Immutable;
import com.jcabi.aspects.Loggable;
import com.jcabi.http.Request;
import com.jcabi.http.response.RestResponse;
import com.jcabi.http.response.XmlResponse;
import com.jcabi.log.Logger;
import com.netbout.spi.Alias;
import com.netbout.spi.Inbox;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URI;
import java.util.Locale;
import lombok.EqualsAndHashCode;
Expand Down Expand Up @@ -103,13 +106,28 @@ public void photo(final URI uri) {
}

@Override
public String email() {
throw new UnsupportedOperationException("#email() not implemented");
public String email() throws IOException {
return this.request.fetch()
.as(XmlResponse.class)
.xml()
.xpath("/page/alias/email/text()")
.get(0);
}

@Override
public void email(final String email) {
throw new UnsupportedOperationException("#email()");
public void email(final String email) throws IOException {
this.request.fetch()
.as(RestResponse.class)
.assertStatus(HttpURLConnection.HTTP_OK)
.as(XmlResponse.class)
.rel("/page/links/link[@rel='account']/@href")
.fetch()
.as(XmlResponse.class)
.rel("/page/links/link[@rel='save-email']/@href")
.method(Request.POST)
.body().formParam("email", email).back()
.fetch();
Logger.info(this, "email changed");
}

@Override
Expand Down
64 changes: 64 additions & 0 deletions netbout-client/src/test/java/com/netbout/client/RtAliasITCase.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/**
* Copyright (c) 2009-2015, netbout.com
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are PROHIBITED without prior written permission from
* the author. This product may NOT be used anywhere and on any computer
* except the server platform of netbout Inc. located at www.netbout.com.
* Federal copyright law prohibits unauthorized reproduction by any means
* and imposes fines up to $25,000 for violation. If you received
* this code accidentally and without intent to use it, please report this
* incident to the author by email.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
package com.netbout.client;

import com.netbout.mock.MkBase;
import com.netbout.spi.Alias;
import com.netbout.spi.User;
import org.hamcrest.MatcherAssert;
import org.hamcrest.Matchers;
import org.junit.Rule;
import org.junit.Test;

/**
* Integration case for {@link RtAlias}.
* @author Matteo Barbieri ([email protected])
* @version $Id$
*/
public final class RtAliasITCase {

/**
* Netbout rule.
* @checkstyle VisibilityModifierCheck (3 lines)
*/
@Rule
public final transient NbRule rule = new NbRule();

/**
* RtAlias can update and retrieve its own mail address.
* @throws Exception If there is some problem inside
*/
@Test
public void updateAndRetrieveEmail() throws Exception {
final MkBase base = new MkBase();
final User user = this.rule.get();
final Alias alias = user.aliases().iterate().iterator().next();
final String email = base.randomAlias().email();
alias.email(email);
MatcherAssert.assertThat(alias.email(), Matchers.is(email));
}
}

0 comments on commit 4e6e339

Please sign in to comment.