From 4e3a9012dbc02fb1835202e3e363173c3810b98f Mon Sep 17 00:00:00 2001 From: OlegKnu Date: Wed, 11 Jun 2025 00:54:14 +0500 Subject: [PATCH] second-commit --- parcel_test.go | 80 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 67 insertions(+), 13 deletions(-) diff --git a/parcel_test.go b/parcel_test.go index d1b93827..e378fee8 100644 --- a/parcel_test.go +++ b/parcel_test.go @@ -31,57 +31,103 @@ func getTestParcel() Parcel { // TestAddGetDelete проверяет добавление, получение и удаление посылки func TestAddGetDelete(t *testing.T) { // prepare - db, err := // настройте подключение к БД + db, err := sql.Open("sqlite", "tracker.db") + require.NoError(t, err) + defer db.Close() + + // настройте подключение к БД store := NewParcelStore(db) parcel := getTestParcel() // add // добавьте новую посылку в БД, убедитесь в отсутствии ошибки и наличии идентификатора - + id, err := store.Add(parcel) + require.NoError(t, err) + require.NotZero(t, id) + parcel.Number = id // get // получите только что добавленную посылку, убедитесь в отсутствии ошибки // проверьте, что значения всех полей в полученном объекте совпадают со значениями полей в переменной parcel - + storedParcel, err := store.Get(id) + require.NoError(t, err) + require.Equal(t, parcel, storedParcel) // delete // удалите добавленную посылку, убедитесь в отсутствии ошибки // проверьте, что посылку больше нельзя получить из БД + err = store.Delete(id) + require.NoError(t, err) + _, err = store.Get(id) + require.Error(t, err) } // TestSetAddress проверяет обновление адреса func TestSetAddress(t *testing.T) { // prepare - db, err := // настройте подключение к БД + db, err := sql.Open("sqlite", "tracker.db") + require.NoError(t, err) + defer db.Close() + + store := NewParcelStore(db) + parcel := getTestParcel() + + // настройте подключение к БД // add // добавьте новую посылку в БД, убедитесь в отсутствии ошибки и наличии идентификатора - + id, err := store.Add(parcel) + require.NoError(t, err) + require.NotZero(t, id) + parcel.Number = id // set address // обновите адрес, убедитесь в отсутствии ошибки newAddress := "new test address" - + err = store.SetAddress(id, newAddress) + require.NoError(t, err) // check // получите добавленную посылку и убедитесь, что адрес обновился + storedParcel, err := store.Get(id) + require.NoError(t, err) + require.Equal(t, newAddress, storedParcel.Address) } // TestSetStatus проверяет обновление статуса func TestSetStatus(t *testing.T) { // prepare - db, err := // настройте подключение к БД + db, err := sql.Open("sqlite", "tracker.db") + require.NoError(t, err) + defer db.Close() + + store := NewParcelStore(db) + parcel := getTestParcel() + // настройте подключение к БД // add // добавьте новую посылку в БД, убедитесь в отсутствии ошибки и наличии идентификатора - + id, err := store.Add(parcel) + require.NoError(t, err) + require.NotZero(t, id) + parcel.Number = id // set status // обновите статус, убедитесь в отсутствии ошибки - + newStatus := ParcelStatusSent + err = store.SetStatus(id, newStatus) + require.NoError(t, err) // check // получите добавленную посылку и убедитесь, что статус обновился + storedParcel, err := store.Get(id) + require.NoError(t, err) + require.Equal(t, newStatus, storedParcel.Status) } // TestGetByClient проверяет получение посылок по идентификатору клиента func TestGetByClient(t *testing.T) { // prepare - db, err := // настройте подключение к БД + db, err := sql.Open("sqlite", "tracker.db") + require.NoError(t, err) + defer db.Close() + + store := NewParcelStore(db) + // настройте подключение к БД parcels := []Parcel{ getTestParcel(), @@ -98,7 +144,10 @@ func TestGetByClient(t *testing.T) { // add for i := 0; i < len(parcels); i++ { - id, err := // добавьте новую посылку в БД, убедитесь в отсутствии ошибки и наличии идентификатора + id, err := store.Add(parcels[i]) + require.NoError(t, err) + require.NotZero(t, id) + // добавьте новую посылку в БД, убедитесь в отсутствии ошибки и наличии идентификатора // обновляем идентификатор добавленной у посылки parcels[i].Number = id @@ -108,14 +157,19 @@ func TestGetByClient(t *testing.T) { } // get by client - storedParcels, err := // получите список посылок по идентификатору клиента, сохранённого в переменной client + storedParcels, err := store.GetByClient(client) + // получите список посылок по идентификатору клиента, сохранённого в переменной client // убедитесь в отсутствии ошибки + require.NoError(t, err) // убедитесь, что количество полученных посылок совпадает с количеством добавленных - + require.Equal(t, len(parcels), len(storedParcels)) // check for _, parcel := range storedParcels { // в parcelMap лежат добавленные посылки, ключ - идентификатор посылки, значение - сама посылка // убедитесь, что все посылки из storedParcels есть в parcelMap + expectedParcel, exists := parcelMap[parcel.Number] + require.True(t, exists, "parcel not found") // убедитесь, что значения полей полученных посылок заполнены верно + require.Equal(t, expectedParcel, parcel) } }