Skip to content

Commit

Permalink
FIX: ScalarTypes can handle String values
Browse files Browse the repository at this point in the history
  • Loading branch information
nPraml authored and rPraml committed Aug 3, 2023
1 parent 73d0f9b commit d0b9d2b
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,7 @@

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import io.ebean.core.type.DataBinder;
import io.ebean.core.type.DataReader;
import io.ebean.core.type.DocPropertyType;
import io.ebean.core.type.ScalarTypeBase;
import io.ebean.core.type.BasicTypeConverter;
import io.ebean.core.type.*;

import java.io.DataInput;
import java.io.DataOutput;
Expand Down Expand Up @@ -348,8 +343,8 @@ public void writeData(DataOutput dataOutput, Boolean val) throws IOException {
}

@Override
public Boolean jsonRead(JsonParser parser) {
return JsonToken.VALUE_TRUE == parser.getCurrentToken() ? Boolean.TRUE : Boolean.FALSE;
public Boolean jsonRead(JsonParser parser) throws IOException {
return parser.getValueAsBoolean();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public void writeData(DataOutput dataOutput, Double value) throws IOException {

@Override
public Double jsonRead(JsonParser parser) throws IOException {
return parser.getDoubleValue();
return parser.getValueAsDouble();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import io.ebean.core.type.DataBinder;
import io.ebean.core.type.DataReader;
import io.ebean.core.type.DocPropertyType;
Expand Down Expand Up @@ -88,7 +89,7 @@ public Integer parse(String value) {

@Override
public Integer jsonRead(JsonParser parser) throws IOException {
return parser.getIntValue();
return parser.getValueAsInt();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public void writeData(DataOutput dataOutput, Long value) throws IOException {

@Override
public Long jsonRead(JsonParser parser) throws IOException {
return parser.getLongValue();
return parser.getValueAsLong();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ public Year parse(String value) {

@Override
public Year jsonRead(JsonParser parser) throws IOException {
return Year.of(parser.getIntValue());
return Year.of(parser.getValueAsInt());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
package io.ebeaninternal.server.type;


import com.fasterxml.jackson.core.JsonParser;
import io.ebean.DB;
import org.junit.jupiter.api.Test;

import java.io.IOException;
import java.io.StringReader;

import static org.assertj.core.api.Assertions.assertThat;

public class ScalarTypeIntegerTest {
Expand All @@ -19,4 +24,18 @@ public void format_when_integer() {
assertThat(type.format(1)).isEqualTo("1");
}

@Test
public void json() throws IOException {

JsonParser parser = DB.json().createParser(new StringReader("1"));
parser.nextToken();
Object parsed = type.jsonRead(parser);
assertThat(parsed).isEqualTo(1);

parser = DB.json().createParser(new StringReader("\"1.0\""));
parser.nextToken();
parsed = type.jsonRead(parser);
assertThat(parsed).isEqualTo(1);
}

}

0 comments on commit d0b9d2b

Please sign in to comment.