diff --git a/src/main/java/com/jcabi/dynamo/AwsItem.java b/src/main/java/com/jcabi/dynamo/AwsItem.java index 63b5686..a52385b 100644 --- a/src/main/java/com/jcabi/dynamo/AwsItem.java +++ b/src/main/java/com/jcabi/dynamo/AwsItem.java @@ -181,7 +181,7 @@ public AttributeValue get(final String attr) throws IOException { } if (value == null) { throw new NoSuchElementException( - String.format("attribute %s not found", attr) + String.format("attribute \"%s\" not found", attr) ); } return value; diff --git a/src/test/java/com/jcabi/dynamo/AwsFrameITCase.java b/src/test/java/com/jcabi/dynamo/AwsFrameITCase.java new file mode 100644 index 0000000..53df07d --- /dev/null +++ b/src/test/java/com/jcabi/dynamo/AwsFrameITCase.java @@ -0,0 +1,65 @@ +/** + * Copyright (c) 2012-2015, jcabi.com + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: 1) Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. 2) Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. 3) Neither the name of the jcabi.com nor + * the names of its contributors may be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * 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 HOLDER 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.jcabi.dynamo; + +import com.jcabi.aspects.Tv; +import org.apache.commons.lang3.RandomStringUtils; +import org.hamcrest.MatcherAssert; +import org.hamcrest.Matchers; +import org.junit.Test; + +/** + * Integration case for {@link AwsFrame}. + * @author Yegor Bugayenko (yegor@tpc2.com) + * @version $Id$ + * @since 0.21 + */ +public final class AwsFrameITCase { + + /** + * AwsFrame can calculate size correctly. + * @throws Exception If some problem inside + */ + @Test + public void calculatesItems() throws Exception { + final String name = RandomStringUtils.randomAlphabetic(Tv.EIGHT); + final RegionMock mock = new RegionMock(); + final Table tbl = mock.get(name).table(name); + final Attributes attrs = new Attributes().with(mock.range(), 1L); + for (int idx = 0; idx < Tv.TEN; ++idx) { + tbl.put(attrs.with(mock.hash(), String.format("i%d", idx))); + } + MatcherAssert.assertThat( + tbl.frame().through(new ScanValve().withLimit(1)).size(), + Matchers.equalTo(Tv.TEN) + ); + } + +}