Skip to content

Commit

Permalink
test: add unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
AaronZyLee committed Feb 2, 2023
1 parent 07ab7b0 commit a54ddaa
Show file tree
Hide file tree
Showing 8 changed files with 969 additions and 270 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2979,6 +2979,225 @@ class _TestModelModelType extends ModelType<TestModel> {
"
`;

exports[`AppSync Dart Visitor Granular read operation test should generate correct model file for GraphQL schema with granular read operation 1`] = `
"/*
* Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the \\"License\\").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the \\"license\\" file accompanying this file. This file is distributed
* on an \\"AS IS\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/

// NOTE: This file is generated and may not follow lint rules defined in your app
// Generated files can be excluded from analysis in analysis_options.yaml
// For more info, see: https://dart.dev/guides/language/analysis-options#excluding-code-from-analysis

// ignore_for_file: public_member_api_docs, annotate_overrides, dead_code, dead_codepublic_member_api_docs, depend_on_referenced_packages, file_names, library_private_types_in_public_api, no_leading_underscores_for_library_prefixes, no_leading_underscores_for_local_identifiers, non_constant_identifier_names, null_check_on_nullable_type_parameter, prefer_adjacent_string_concatenation, prefer_const_constructors, prefer_if_null_operators, prefer_interpolation_to_compose_strings, slash_for_doc_comments, sort_child_properties_last, unnecessary_const, unnecessary_constructor_name, unnecessary_late, unnecessary_new, unnecessary_null_aware_assignments, unnecessary_nullable_for_final_variable_declarations, unnecessary_string_interpolations, use_build_context_synchronously

import 'package:amplify_datastore_plugin_interface/amplify_datastore_plugin_interface.dart';
import 'package:flutter/foundation.dart';


/** This is an auto generated class representing the Todo type in your schema. */
@immutable
class Todo extends Model {
static const classType = const _TodoModelType();
final String id;
final String? _name;
final TemporalDateTime? _createdAt;
final TemporalDateTime? _updatedAt;

@override
getInstanceType() => classType;

@Deprecated('[getId] is being deprecated in favor of custom primary key feature. Use getter [modelIdentifier] to get model identifier.')
@override
String getId() => id;

TodoModelIdentifier get modelIdentifier {
return TodoModelIdentifier(
id: id
);
}

String? get name {
return _name;
}

TemporalDateTime? get createdAt {
return _createdAt;
}

TemporalDateTime? get updatedAt {
return _updatedAt;
}

const Todo._internal({required this.id, name, createdAt, updatedAt}): _name = name, _createdAt = createdAt, _updatedAt = updatedAt;

factory Todo({String? id, String? name}) {
return Todo._internal(
id: id == null ? UUID.getUUID() : id,
name: name);
}

bool equals(Object other) {
return this == other;
}

@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is Todo &&
id == other.id &&
_name == other._name;
}

@override
int get hashCode => toString().hashCode;

@override
String toString() {
var buffer = new StringBuffer();

buffer.write(\\"Todo {\\");
buffer.write(\\"id=\\" + \\"$id\\" + \\", \\");
buffer.write(\\"name=\\" + \\"$_name\\" + \\", \\");
buffer.write(\\"createdAt=\\" + (_createdAt != null ? _createdAt!.format() : \\"null\\") + \\", \\");
buffer.write(\\"updatedAt=\\" + (_updatedAt != null ? _updatedAt!.format() : \\"null\\"));
buffer.write(\\"}\\");

return buffer.toString();
}

Todo copyWith({String? name}) {
return Todo._internal(
id: id,
name: name ?? this.name);
}

Todo.fromJson(Map<String, dynamic> json)
: id = json['id'],
_name = json['name'],
_createdAt = json['createdAt'] != null ? TemporalDateTime.fromString(json['createdAt']) : null,
_updatedAt = json['updatedAt'] != null ? TemporalDateTime.fromString(json['updatedAt']) : null;

Map<String, dynamic> toJson() => {
'id': id, 'name': _name, 'createdAt': _createdAt?.format(), 'updatedAt': _updatedAt?.format()
};

Map<String, Object?> toMap() => {
'id': id, 'name': _name, 'createdAt': _createdAt, 'updatedAt': _updatedAt
};

static final QueryModelIdentifier<TodoModelIdentifier> MODEL_IDENTIFIER = QueryModelIdentifier<TodoModelIdentifier>();
static final QueryField ID = QueryField(fieldName: \\"id\\");
static final QueryField NAME = QueryField(fieldName: \\"name\\");
static var schema = Model.defineSchema(define: (ModelSchemaDefinition modelSchemaDefinition) {
modelSchemaDefinition.name = \\"Todo\\";
modelSchemaDefinition.pluralName = \\"Todos\\";

modelSchemaDefinition.authRules = [
AuthRule(
authStrategy: AuthStrategy.PUBLIC,
operations: [
ModelOperation.GET,
ModelOperation.LIST,
ModelOperation.LISTEN,
ModelOperation.SYNC,
ModelOperation.SEARCH
])
];

modelSchemaDefinition.addField(ModelFieldDefinition.id());

modelSchemaDefinition.addField(ModelFieldDefinition.field(
key: Todo.NAME,
isRequired: false,
ofType: ModelFieldType(ModelFieldTypeEnum.string)
));

modelSchemaDefinition.addField(ModelFieldDefinition.nonQueryField(
fieldName: 'createdAt',
isRequired: false,
isReadOnly: true,
ofType: ModelFieldType(ModelFieldTypeEnum.dateTime)
));

modelSchemaDefinition.addField(ModelFieldDefinition.nonQueryField(
fieldName: 'updatedAt',
isRequired: false,
isReadOnly: true,
ofType: ModelFieldType(ModelFieldTypeEnum.dateTime)
));
});
}

class _TodoModelType extends ModelType<Todo> {
const _TodoModelType();

@override
Todo fromJson(Map<String, dynamic> jsonData) {
return Todo.fromJson(jsonData);
}

@override
String modelName() {
return 'Todo';
}
}

/**
* This is an auto generated class representing the model identifier
* of [Todo] in your schema.
*/
@immutable
class TodoModelIdentifier implements ModelIdentifier<Todo> {
final String id;

/** Create an instance of TodoModelIdentifier using [id] the primary key. */
const TodoModelIdentifier({
required this.id});

@override
Map<String, dynamic> serializeAsMap() => (<String, dynamic>{
'id': id
});

@override
List<Map<String, dynamic>> serializeAsList() => serializeAsMap()
.entries
.map((entry) => (<String, dynamic>{ entry.key: entry.value }))
.toList();

@override
String serializeAsString() => serializeAsMap().values.join('#');

@override
String toString() => 'TodoModelIdentifier(id: $id)';

@override
bool operator ==(Object other) {
if (identical(this, other)) {
return true;
}

return other is TodoModelIdentifier &&
id == other.id;
}

@override
int get hashCode =>
id.hashCode;
}"
`;

exports[`AppSync Dart Visitor Many To Many V2 Tests Should generate the intermediate model successfully with nullsafety disabled 1`] = `
"/*
* Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
Expand Down

0 comments on commit a54ddaa

Please sign in to comment.