|
1 | 1 | import pytest |
2 | 2 | import json |
| 3 | +import pytest |
3 | 4 |
|
4 | 5 | import azure.functions as func |
5 | 6 |
|
|
9 | 10 | from time_tracker.time_entries import _infrastructure as infrastructure_time_entries |
10 | 11 |
|
11 | 12 |
|
12 | | -TIME_ENTRY_URL = "/api/time-entries/" |
| 13 | +TIME_ENTRY_URL = "/api/time_entries/" |
13 | 14 |
|
14 | 15 |
|
15 | 16 | @pytest.fixture(name='insert_time_entry') |
@@ -76,3 +77,65 @@ def test__delete_time_entries_azure_endpoint__returns_a_status_code_400__when_ti |
76 | 77 |
|
77 | 78 | assert response.status_code == 400 |
78 | 79 | assert response.get_body() == b'Invalid Format ID' |
| 80 | + |
| 81 | + |
| 82 | +def test__time_entry_azure_endpoint__returns_all_time_entries( |
| 83 | + create_fake_database, time_entry_factory, insert_time_entry, activity_factory, insert_activity |
| 84 | +): |
| 85 | + fake_database = create_fake_database |
| 86 | + inserted_activity = insert_activity(activity_factory(), fake_database) |
| 87 | + existent_time_entries = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]") |
| 88 | + inserted_time_entries = [insert_time_entry(existent_time_entries, fake_database)] |
| 89 | + |
| 90 | + azure_time_entries._get_time_entries.DATABASE = fake_database |
| 91 | + req = func.HttpRequest(method="GET", body=None, url=TIME_ENTRY_URL) |
| 92 | + |
| 93 | + response = azure_time_entries.get_time_entries(req) |
| 94 | + time_entries_json_data = response.get_body().decode("utf-8") |
| 95 | + |
| 96 | + assert response.status_code == 200 |
| 97 | + assert time_entries_json_data == json.dumps(inserted_time_entries) |
| 98 | + |
| 99 | + |
| 100 | +def test__time_entry_azure_endpoint__returns_an_time_entry__when_time_entry_matches_its_id( |
| 101 | + create_fake_database, time_entry_factory, insert_time_entry, activity_factory, insert_activity |
| 102 | +): |
| 103 | + fake_database = create_fake_database |
| 104 | + inserted_activity = insert_activity(activity_factory(), fake_database) |
| 105 | + existent_time_entries = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]") |
| 106 | + inserted_time_entries = insert_time_entry(existent_time_entries, fake_database) |
| 107 | + |
| 108 | + azure_time_entries._get_time_entries.DATABASE = fake_database |
| 109 | + |
| 110 | + req = func.HttpRequest( |
| 111 | + method="GET", |
| 112 | + body=None, |
| 113 | + url=TIME_ENTRY_URL, |
| 114 | + route_params={"id": inserted_time_entries["id"]}, |
| 115 | + ) |
| 116 | + |
| 117 | + response = azure_time_entries.get_time_entries(req) |
| 118 | + time_entry_json_data = response.get_body().decode("utf-8") |
| 119 | + |
| 120 | + assert response.status_code == 200 |
| 121 | + assert time_entry_json_data == json.dumps(inserted_time_entries) |
| 122 | + |
| 123 | + |
| 124 | +def test__get_time_entries_azure_endpoint__returns_a_status_code_400__when_time_entry_recive_invalid_id( |
| 125 | + test_db, time_entry_factory, insert_time_entry, activity_factory, insert_activity |
| 126 | +): |
| 127 | + inserted_activity = insert_activity(activity_factory(), test_db) |
| 128 | + existent_time_entries = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]") |
| 129 | + insert_time_entry(existent_time_entries, test_db) |
| 130 | + |
| 131 | + req = func.HttpRequest( |
| 132 | + method="GET", |
| 133 | + body=None, |
| 134 | + url=TIME_ENTRY_URL, |
| 135 | + route_params={"id": "invalid id"}, |
| 136 | + ) |
| 137 | + |
| 138 | + response = azure_time_entries.get_time_entries(req) |
| 139 | + |
| 140 | + assert response.status_code == 400 |
| 141 | + assert response.get_body() == b'Invalid Format ID' |
0 commit comments