Skip to content
Closed
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

package software.amazon.cryptography.dbencryptionsdk.dynamodb.testvectors.model;

import java.util.Collections;
import java.util.List;

/**
* A complex query definition containing a simple query, a list of config names
* that should pass, and a list of config names that should fail.
*/
public class ComplexQuery {

private final SimpleQuery query;
private final List<String> pass;
private final List<String> fail;

public ComplexQuery(SimpleQuery query, List<String> pass, List<String> fail) {
this.query = query;
this.pass =
pass != null
? Collections.unmodifiableList(pass)
: Collections.<String>emptyList();
this.fail =
fail != null
? Collections.unmodifiableList(fail)
: Collections.<String>emptyList();
}

public SimpleQuery getQuery() {
return query;
}

public List<String> getPass() {
return pass;
}

public List<String> getFail() {
return fail;
}

@Override
public String toString() {
return (
"ComplexQuery{query=" + query + ", pass=" + pass + ", fail=" + fail + "}"
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

package software.amazon.cryptography.dbencryptionsdk.dynamodb.testvectors.model;

import java.util.Collections;
import java.util.List;

/**
* A complex test definition containing a config name, a list of complex queries,
* and a list of failure queries.
*/
public class ComplexTest {

private final String config;
private final List<ComplexQuery> queries;
private final List<SimpleQuery> failures;

public ComplexTest(
String config,
List<ComplexQuery> queries,
List<SimpleQuery> failures
) {
this.config = config;
this.queries =
queries != null
? Collections.unmodifiableList(queries)
: Collections.<ComplexQuery>emptyList();
this.failures =
failures != null
? Collections.unmodifiableList(failures)
: Collections.<SimpleQuery>emptyList();
}

public String getConfig() {
return config;
}

public List<ComplexQuery> getQueries() {
return queries;
}

public List<SimpleQuery> getFailures() {
return failures;
}

@Override
public String toString() {
return (
"ComplexTest{config='" +
config +
"', queries=" +
queries +
", failures=" +
failures +
"}"
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

package software.amazon.cryptography.dbencryptionsdk.dynamodb.testvectors.model;

/**
* A pair of config names (write config, read config) used for IO and modification tests.
*/
public class ConfigPair {

private final String writeConfig;
private final String readConfig;

public ConfigPair(String writeConfig, String readConfig) {
this.writeConfig = writeConfig;
this.readConfig = readConfig;
}

public String getWriteConfig() {
return writeConfig;
}

public String getReadConfig() {
return readConfig;
}

@Override
public String toString() {
return "ConfigPair{write='" + writeConfig + "', read='" + readConfig + "'}";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

package software.amazon.cryptography.dbencryptionsdk.dynamodb.testvectors.model;

import java.util.Collections;
import java.util.List;

/**
* A decrypt test definition containing a config, encrypted records, and expected plaintext records.
*/
public class DecryptTest {

private final TableConfig config;
private final List<Record> encryptedRecords;
private final List<Record> plaintextRecords;

public DecryptTest(
TableConfig config,
List<Record> encryptedRecords,
List<Record> plaintextRecords
) {
this.config = config;
this.encryptedRecords =
encryptedRecords != null
? Collections.unmodifiableList(encryptedRecords)
: Collections.<Record>emptyList();
this.plaintextRecords =
plaintextRecords != null
? Collections.unmodifiableList(plaintextRecords)
: Collections.<Record>emptyList();
}

public TableConfig getConfig() {
return config;
}

public List<Record> getEncryptedRecords() {
return encryptedRecords;
}

public List<Record> getPlaintextRecords() {
return plaintextRecords;
}

@Override
public String toString() {
return (
"DecryptTest{config=" +
config +
", encryptedRecords=" +
encryptedRecords.size() +
" items, plaintextRecords=" +
plaintextRecords.size() +
" items}"
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

package software.amazon.cryptography.dbencryptionsdk.dynamodb.testvectors.model;

import java.util.Collections;
import java.util.List;
import java.util.Map;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;

/**
* An IO test definition containing write/read configs, records, expression maps, and queries.
*/
public class IoTest {

private final String name;
private final TableConfig writeConfig;
private final TableConfig readConfig;
private final List<Record> records;
private final Map<String, String> names;
private final Map<String, AttributeValue> values;
private final List<SimpleQuery> queries;

public IoTest(
String name,
TableConfig writeConfig,
TableConfig readConfig,
List<Record> records,
Map<String, String> names,
Map<String, AttributeValue> values,
List<SimpleQuery> queries
) {
this.name = name;
this.writeConfig = writeConfig;
this.readConfig = readConfig;
this.records =
records != null
? Collections.unmodifiableList(records)
: Collections.<Record>emptyList();
this.names =
names != null
? Collections.unmodifiableMap(names)
: Collections.<String, String>emptyMap();
this.values =
values != null
? Collections.unmodifiableMap(values)
: Collections.<String, AttributeValue>emptyMap();
this.queries =
queries != null
? Collections.unmodifiableList(queries)
: Collections.<SimpleQuery>emptyList();
}

public String getName() {
return name;
}

public TableConfig getWriteConfig() {
return writeConfig;
}

public TableConfig getReadConfig() {
return readConfig;
}

public List<Record> getRecords() {
return records;
}

public Map<String, String> getNames() {
return names;
}

public Map<String, AttributeValue> getValues() {
return values;
}

public List<SimpleQuery> getQueries() {
return queries;
}

@Override
public String toString() {
return (
"IoTest{name='" +
name +
"', writeConfig=" +
writeConfig +
", readConfig=" +
readConfig +
", records=" +
records.size() +
" items}"
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

package software.amazon.cryptography.dbencryptionsdk.dynamodb.testvectors.model;

import java.util.Map;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;

/**
* A large test record consisting of a name and a DynamoDB item, used for performance testing.
*/
public class LargeRecord {

private final String name;
private final Map<String, AttributeValue> item;

public LargeRecord(String name, Map<String, AttributeValue> item) {
this.name = name;
this.item = item;
}

public String getName() {
return name;
}

public Map<String, AttributeValue> getItem() {
return item;
}

@Override
public String toString() {
return "LargeRecord{name='" + name + "', item=" + item + "}";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

package software.amazon.cryptography.dbencryptionsdk.dynamodb.testvectors.model;

import java.util.Map;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;

/**
* A test record consisting of a record number and a DynamoDB item.
*/
public class Record {

private final int number;
private final Map<String, AttributeValue> item;

public Record(int number, Map<String, AttributeValue> item) {
this.number = number;
this.item = item;
}

public int getNumber() {
return number;
}

public Map<String, AttributeValue> getItem() {
return item;
}

@Override
public String toString() {
return "Record{number=" + number + ", item=" + item + "}";
}
}
Loading
Loading