|
1 | 1 | import pytest
|
| 2 | +import typing |
| 3 | + |
2 | 4 | from faker import Faker
|
3 | 5 |
|
4 | 6 | import time_tracker.time_entries._domain as domain
|
@@ -69,3 +71,56 @@ def test_delete__returns_none__when_no_time_entry_matching_its_id_is_found(
|
69 | 71 | result = dao.delete(Faker().pyint())
|
70 | 72 |
|
71 | 73 | assert result is None
|
| 74 | + |
| 75 | + |
| 76 | +def test__get_all__returns_a_list_of_time_entries_dto_objects__when_one_or_more_time_entries_are_found_in_sql_database( |
| 77 | + test_db, create_fake_dao, time_entry_factory, insert_activity, activity_factory |
| 78 | +): |
| 79 | + |
| 80 | + dao = create_fake_dao(test_db) |
| 81 | + inserted_activity = insert_activity(activity_factory(), dao.db) |
| 82 | + time_entries_to_insert = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]") |
| 83 | + inserted_time_entries = [dao.create(time_entries_to_insert)] |
| 84 | + |
| 85 | + time_entry = dao.get_all() |
| 86 | + |
| 87 | + assert isinstance(time_entry, typing.List) |
| 88 | + assert time_entry == inserted_time_entries |
| 89 | + |
| 90 | + |
| 91 | +def test__get_all__returns_an_empty_list__when_doesnt_found_any_time_entries_in_sql_database( |
| 92 | + test_db, create_fake_dao, insert_activity, activity_factory |
| 93 | +): |
| 94 | + dao = create_fake_dao(test_db) |
| 95 | + insert_activity(activity_factory(), dao.db) |
| 96 | + |
| 97 | + time_entry = dao.get_all() |
| 98 | + assert time_entry == [] |
| 99 | + |
| 100 | + |
| 101 | +def test__get_by_id__returns_a_time_entry_dto__when_found_one_time_entry_that_match_id_with_sql_database( |
| 102 | + test_db, create_fake_dao, time_entry_factory, insert_activity, activity_factory |
| 103 | +): |
| 104 | + dao = create_fake_dao(test_db) |
| 105 | + inserted_activity = insert_activity(activity_factory(), dao.db) |
| 106 | + time_entries_to_insert = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]") |
| 107 | + inserted_time_entries = dao.create(time_entries_to_insert) |
| 108 | + |
| 109 | + time_entry = dao.get_by_id(time_entries_to_insert.id) |
| 110 | + |
| 111 | + assert isinstance(time_entry, domain.TimeEntry) |
| 112 | + assert time_entry.id == inserted_time_entries.id |
| 113 | + assert time_entry == inserted_time_entries |
| 114 | + |
| 115 | + |
| 116 | +def test__get_by_id__returns_none__when_no_time_entry_matches_by_id( |
| 117 | + test_db, create_fake_dao, time_entry_factory, insert_activity, activity_factory |
| 118 | +): |
| 119 | + dao = create_fake_dao(test_db) |
| 120 | + inserted_activity = insert_activity(activity_factory(), dao.db) |
| 121 | + time_entries_to_insert = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]") |
| 122 | + dao.create(time_entries_to_insert) |
| 123 | + |
| 124 | + time_entry = dao.get_by_id(Faker().pyint()) |
| 125 | + |
| 126 | + assert time_entry is None |
0 commit comments