diff --git a/Gombahaz/Gombahaz/Repositories/DataSetRepository.cs b/Gombahaz/Gombahaz/Repositories/DataSetRepository.cs index 492149c..720a42e 100644 --- a/Gombahaz/Gombahaz/Repositories/DataSetRepository.cs +++ b/Gombahaz/Gombahaz/Repositories/DataSetRepository.cs @@ -22,7 +22,7 @@ public DataSetRepository(DataContext _dataContext) DataSetItem? retrievedDataSet = await dataContext.DataSets .Include(ds => ds.Resource) .Where(ds => ds.Id == dataSetId) - .SingleAsync(); + .SingleOrDefaultAsync(); if (retrievedDataSet == null) return null; diff --git a/Gombahaz/Gombahaz/Services/DataSetService.cs b/Gombahaz/Gombahaz/Services/DataSetService.cs index 2b37ac1..9f369b1 100644 --- a/Gombahaz/Gombahaz/Services/DataSetService.cs +++ b/Gombahaz/Gombahaz/Services/DataSetService.cs @@ -18,12 +18,9 @@ public DataSetService(IDataSetRepository _datasetRepository, IResourceRepository this.datasetRepository = _datasetRepository; this.resourceRepository = resourceRepository; } - public async Task getDataSetById(int id) + public async Task getDataSetById(int id) { DataSetItem? retrievedDataSet = await datasetRepository.getDataSetById(id); - - if (retrievedDataSet == null) - throw new Exception($"Element with id={id} is not found!"); return retrievedDataSet; } diff --git a/Gombahaz/Gombahaz/Services/IDataSetService.cs b/Gombahaz/Gombahaz/Services/IDataSetService.cs index d73cb69..ba7a9cd 100644 --- a/Gombahaz/Gombahaz/Services/IDataSetService.cs +++ b/Gombahaz/Gombahaz/Services/IDataSetService.cs @@ -6,7 +6,7 @@ namespace Gombahaz.Services public interface IDataSetService { public Task insertDataSet(DataSetItem datasetToInsert, int resourceId); - public Task getDataSetById(int id); + public Task getDataSetById(int id); public Task> getDataSetsByResourceId(int resourceId); diff --git a/doc/API_testing.md b/doc/API_testing.md new file mode 100644 index 0000000..da88404 --- /dev/null +++ b/doc/API_testing.md @@ -0,0 +1,49 @@ +### API végpontok létrehozása + +A feladatom első részeként Postman segítségével létrehoztam egy Collectiont, és abba két mappát - Resource és DataSet. Ezek a mappák aszerint csoportosítják a végpontokat, hogy melyik táblából kérnek le adatokat a backenden. + +Az egyes mappákban pedig létrehoztam a végpontokat, ezek az alábbi képen láthatók: + +![image](https://github.com/BME-MIT-IET/iet-hf-2024-lg_iet_lab/assets/166651149/35ed5972-20f0-4301-9ca3-5b601b6c2c12) + +_Megjegyzés_: Több végpont lett létrehozva annak érdekében, hogy olyan tesztek is lefuthassanak, amelyek a hibás kérés esetén visszadott válaszokra vonatkoznak. + +Létrehoztam több Collection Variable változót is, mivel az összes kérés ugyanazt az URL-t használja, valamint hogy az egész Collection-re lehessen teszteket futtatni, ugyanis egyes kérések átállították a változókat. + +![alt text](src/img1.png) + +### Tesztek megírása + +Miután elkészültem a végpontok létrehozásával, utána az egyes API végpontokhoz tartozó teszteket megírtam. + +A tesztek megírásában segítséget nyújtott a Postman dokumentáció, valamint a Postbot beépített AI copilot is. + +A tesztek futtatása után hibákat fedeztem fel a backendben, ennek javításai láthatók GitHub-on issue-k formájában. + +Jelenlegi állapotban, ha az alábbi sorrendben futtatjuk le a teszteket a Collection-ön (csak a Resource és DataSet mappába tartozó kéréseket), akkor a tesztek mindegyike sikerrel fog lezárulni. + +![alt text](src/img6.png) + +**Fontos:** A DELETE kérésnek mindig a Collection run legvégén kell lefutnia. + +A tesztek eredménye, pedig az alábbi képeken látható: + +![alt text](src/img2.png) + +![alt text](src/img3.png) + +![alt text](src/img4.png) + +![alt text](src/img5.png) + +Ha a teszteket külön szeretnénk lefuttatni, akkor oda kell figyelni a Collection változókra, ugyanis egyes kérések megváltoztatják azokat, és ha erre nem figyelünk, akkor a tesztek hibával térhetnek vissza. (Például a DELETE többszöri meghívása anélkül, hogy POST-ot hívtunk volna) + +### API leírása + +Az API-hoz található a VisualStudio projekt által automatikusan készített Swagger leírás. + +![alt text](src/img7.png) + +### Tanulság + +Amit megtanultam ebben a házi feladatban az az, hogy a tesztelést komolyan kell venni, és el kell végezni, mert egy olyan projektben is előjöhetnek hibák, amiről a fejlesztő alapesetben úgy gondolta, hogy nagyrészt hibamentes. Továbbá rávilágított arra is a házi feladat, hogy a GitHub-ot hogyan kellene rendesen használni verziókezelésre. \ No newline at end of file diff --git a/doc/src/img1.png b/doc/src/img1.png new file mode 100644 index 0000000..66f917e Binary files /dev/null and b/doc/src/img1.png differ diff --git a/doc/src/img2.png b/doc/src/img2.png new file mode 100644 index 0000000..fb9132c Binary files /dev/null and b/doc/src/img2.png differ diff --git a/doc/src/img3.png b/doc/src/img3.png new file mode 100644 index 0000000..b4babbb Binary files /dev/null and b/doc/src/img3.png differ diff --git a/doc/src/img4.png b/doc/src/img4.png new file mode 100644 index 0000000..8f57bb6 Binary files /dev/null and b/doc/src/img4.png differ diff --git a/doc/src/img5.png b/doc/src/img5.png new file mode 100644 index 0000000..7547f04 Binary files /dev/null and b/doc/src/img5.png differ diff --git a/doc/src/img6.png b/doc/src/img6.png new file mode 100644 index 0000000..b7823b0 Binary files /dev/null and b/doc/src/img6.png differ diff --git a/doc/src/img7.png b/doc/src/img7.png new file mode 100644 index 0000000..e973bf2 Binary files /dev/null and b/doc/src/img7.png differ