|
| 1 | +package com.fasterxml.jackson.databind.creators; |
| 2 | + |
| 3 | +import com.fasterxml.jackson.annotation.*; |
| 4 | + |
| 5 | +import com.fasterxml.jackson.databind.*; |
| 6 | + |
| 7 | +// Test(s) for "big" creators; ones with at least 32 arguments (sic!). |
| 8 | +// Needed because codepaths diverge wrt handling of bitset |
| 9 | +public class BigCreatorTest extends BaseMapTest |
| 10 | +{ |
| 11 | + static class Biggie { |
| 12 | + final int[] stuff; |
| 13 | + |
| 14 | + @JsonCreator |
| 15 | + public Biggie( |
| 16 | + @JsonProperty("v1") int v1, @JsonProperty("v2") int v2, |
| 17 | + @JsonProperty("v3") int v3, @JsonProperty("v4") int v4, |
| 18 | + @JsonProperty("v5") int v5, @JsonProperty("v6") int v6, |
| 19 | + @JsonProperty("v7") int v7, @JsonProperty("v8") int v8, |
| 20 | + @JsonProperty("v9") int v9, @JsonProperty("v10") int v10, |
| 21 | + @JsonProperty("v11") int v11, @JsonProperty("v12") int v12, |
| 22 | + @JsonProperty("v13") int v13, @JsonProperty("v14") int v14, |
| 23 | + @JsonProperty("v15") int v15, @JsonProperty("v16") int v16, |
| 24 | + @JsonProperty("v17") int v17, @JsonProperty("v18") int v18, |
| 25 | + @JsonProperty("v19") int v19, @JsonProperty("v20") int v20, |
| 26 | + @JsonProperty("v21") int v21, @JsonProperty("v22") int v22, |
| 27 | + @JsonProperty("v23") int v23, @JsonProperty("v24") int v24, |
| 28 | + @JsonProperty("v25") int v25, @JsonProperty("v26") int v26, |
| 29 | + @JsonProperty("v27") int v27, @JsonProperty("v28") int v28, |
| 30 | + @JsonProperty("v29") int v29, @JsonProperty("v30") int v30, |
| 31 | + @JsonProperty("v31") int v31, @JsonProperty("v32") int v32, |
| 32 | + @JsonProperty("v33") int v33, @JsonProperty("v34") int v34, |
| 33 | + @JsonProperty("v35") int v35, @JsonProperty("v36") int v36, |
| 34 | + @JsonProperty("v37") int v37, @JsonProperty("v38") int v38, |
| 35 | + @JsonProperty("v39") int v39, @JsonProperty("v40") int v40 |
| 36 | + ) { |
| 37 | + stuff = new int[] { |
| 38 | + v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, |
| 39 | + v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, |
| 40 | + v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, |
| 41 | + v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, |
| 42 | + }; |
| 43 | + } |
| 44 | + } |
| 45 | + |
| 46 | + private final ObjectReader BIGGIE_READER = objectReader(Biggie.class); |
| 47 | + |
| 48 | + public void testBigPartial() throws Exception |
| 49 | + { |
| 50 | + Biggie value = BIGGIE_READER.readValue(aposToQuotes( |
| 51 | + "{'v7':7, 'v8':8,'v29':29, 'v35':35}" |
| 52 | + )); |
| 53 | + int[] stuff = value.stuff; |
| 54 | + for (int i = 0; i < stuff.length; ++i) { |
| 55 | + int exp; |
| 56 | + |
| 57 | + switch (i) { |
| 58 | + case 6: // These are off-by-one... |
| 59 | + case 7: |
| 60 | + case 28: |
| 61 | + case 34: |
| 62 | + exp = i+1; |
| 63 | + break; |
| 64 | + default: |
| 65 | + exp = 0; |
| 66 | + } |
| 67 | + assertEquals("Entry #"+i, exp, stuff[i]); |
| 68 | + } |
| 69 | + } |
| 70 | +} |
0 commit comments