Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
version=1.1-SNAPSHOT
version=1.0.1-SNAPSHOT
20 changes: 10 additions & 10 deletions src/main/java/com/github/tonivade/resp/protocol/RedisParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -82,23 +82,23 @@ private RedisToken parseIntegerToken(SafeString line) {
}

private RedisToken parseStringToken(SafeString line) {
StringRedisToken token;
int length = line.parseIntAfterPrefix();
if (length >= 0 && length < maxLength) {
token = new StringRedisToken(source.readString(length));
} else {
token = new StringRedisToken(SafeString.EMPTY_STRING);
return new StringRedisToken(source.readString(length));
}
return token;
return new StringRedisToken(SafeString.EMPTY_STRING);
}

private RedisToken parseArray(int size) {
List<RedisToken> array = new ArrayList<>(size);
if (size >= 0 && size < maxLength) {
List<RedisToken> array = new ArrayList<>(size);

for (int i = 0; i < size; i++) {
array.add(parseToken(source.readLine()));
}
for (int i = 0; i < size; i++) {
array.add(parseToken(source.readLine()));
}

return array(array);
return array(array);
}
return array();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import com.github.tonivade.resp.protocol.AbstractRedisToken.UnknownRedisToken;
import com.github.tonivade.resp.util.StringRedisSource;

import org.junit.jupiter.api.Test;

import static com.github.tonivade.resp.protocol.SafeString.safeString;
Expand Down Expand Up @@ -46,6 +47,15 @@ void testEmptyBulkString() {
assertThat(source.available(), equalTo(0));
}

@Test
void testLargeBulkString() {
source.init("$100000\r\n\r\n");

RedisToken token = parser.next();

assertThat(token, equalTo(emptyString));
}

@Test
void testSimpleString() {
source.init("+pong\r\n");
Expand Down Expand Up @@ -100,4 +110,18 @@ void testArray() {
assertThat(token, equalTo(arrayToken));
assertThat(source.available(), equalTo(0));
}

@Test
void testLargeArray() throws Exception {
source.init(
"*100000\r\n",
":1\r\n",
"$3\r\n",
"abc\r\n"
);

RedisToken token = parser.next();

assertThat(token, equalTo(RedisToken.array()));
}
}
Loading