From 9867e3e60fcc81166bb32210ad12424f77b2b379 Mon Sep 17 00:00:00 2001 From: tokku5552 Date: Fri, 11 Dec 2020 22:42:59 +0900 Subject: [PATCH 1/2] change readme (describe that using git flow) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0fc750a..c9523f1 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # TODOAppSample-Flutter -A sample Todo App with Provider +A sample Todo App with Provider +This project uses Git-Flow ## DEMO ![Screenshot showing TODOAppSample-Flutter for TodoList](docs/images/demo_todo_list.png "Demo Todo List") From e586ecf7ecc97730229d6b22445ad15c473fdbfa Mon Sep 17 00:00:00 2001 From: tokku5552 Date: Sat, 12 Dec 2020 00:42:20 +0900 Subject: [PATCH 2/2] add test code --- test/todo_item_test.dart | 125 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 test/todo_item_test.dart diff --git a/test/todo_item_test.dart b/test/todo_item_test.dart new file mode 100644 index 0000000..b73b2dc --- /dev/null +++ b/test/todo_item_test.dart @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2020 tokku5552 + * + * This software is released under the MIT License. + * https://opensource.org/licenses/mit-license.php + * + */ +import 'package:flutter_test/flutter_test.dart'; +import 'package:todo_app_sample_flutter/data/todo_item.dart'; + +void main() { + group("TodoItemのゲッターのテスト", () { + final TodoItem todoItem = TodoItem( + id: 0, + title: 'title', + body: 'body', + createdAt: DateTime(2020, 1, 1), + updatedAt: DateTime(2020, 1, 1), + isDone: true, + ); + + test('idのテスト', () async { + expect(todoItem.getId, 0); + }); + + test('titleのテスト', () async { + expect(todoItem.getTitle, "title"); + }); + + test('bodyのテスト', () async { + expect(todoItem.getBody, "body"); + }); + + test('createdAtのテスト', () async { + expect(todoItem.createdAt, DateTime(2020, 1, 1)); + }); + + test('updatedAtのテスト', () async { + expect(todoItem.getUpdatedAt, DateTime(2020, 1, 1)); + }); + + test('isDoneのテスト', () async { + expect(todoItem.getIsDone, true); + }); + }); + + group("toMapのテスト", () { + final TodoItem todoItem = TodoItem( + id: 0, + title: 'title', + body: 'body', + createdAt: DateTime(2020, 1, 1), + updatedAt: DateTime(2020, 1, 1), + isDone: true, + ); + + final todoItemMap = todoItem.toMap(); + final keyList = todoItemMap.keys.toList(); + final valueList = todoItemMap.values.toList(); + + test('keyが一致しているか', () async { + expect(keyList[0], 'id'); + expect(keyList[1], 'title'); + expect(keyList[2], 'body'); + expect(keyList[3], 'createdAt'); + expect(keyList[4], 'updatedAt'); + expect(keyList[5], 'isDone'); + }); + + test('valueが一致しているか', () async { + expect(valueList[0], 0); + expect(valueList[1], 'title'); + expect(valueList[2], 'body'); + expect(valueList[3], DateTime(2020, 1, 1).toUtc().toIso8601String()); + expect(valueList[4], DateTime(2020, 1, 1).toUtc().toIso8601String()); + expect(valueList[5], 1); + }); + }); + + group("fromMapのテスト", () { + final Map json = { + 'id': 0, + 'title': 'title', + 'body': 'body', + 'createdAt': DateTime(2020, 1, 1).toString(), + 'updatedAt': DateTime(2020, 1, 1).toString(), + 'isDone': '1', // SQLiteの仕様上真偽値はtrue=1,false=0のString + }; + + test('idが一致しているか', () { + expect(TodoItem.fromMap(json).getId, 0); + }); + test('titleが一致しているか', () { + expect(TodoItem.fromMap(json).getTitle, 'title'); + }); + test('bodyが一致しているか', () { + expect(TodoItem.fromMap(json).getBody, 'body'); + }); + test('createdAtが一致しているか', () { + expect(TodoItem.fromMap(json).createdAt, DateTime(2020, 1, 1)); + }); + test('updatedAtが一致しているか', () { + expect(TodoItem.fromMap(json).getUpdatedAt, DateTime(2020, 1, 1)); + }); + test('isDoneが一致しているか', () { + expect(TodoItem.fromMap(json).isDone, true); + }); + }); + + group("toStringのテスト", () { + final TodoItem todoItem = TodoItem( + id: 0, + title: 'title', + body: 'body', + createdAt: DateTime(2020, 1, 1), + updatedAt: DateTime(2020, 1, 1), + isDone: true, + ); + + test('toStringで取得した結果が一致しているか', () async { + expect(todoItem.toString(), + 'Todo{id: 0, title: title, createdAt: 2020-01-01 00:00:00.000}'); + }); + }); +}