rename Algorytm to Program

This commit is contained in:
2026-05-27 22:59:56 +02:00
parent 5b13659d9d
commit 53eab47a08
4 changed files with 25 additions and 25 deletions
+5 -5
View File
@@ -17,7 +17,7 @@ Testy jednostkowe zostały wykonane w izolacji od systemu plików oraz framework
== Testy jednostkowe
Podstawowym przetestowanym komponentem jest klasa `NotesStorage`, odpowiedzialna za zarządzanie cyklem życia notatek w lokalnym systemie plików. Do testów przygotowałem zastępczą implementację `InMemoryStorageProvider` (algorytm 4.1), która symuluje zachowanie systemu plików w pamięci operacyjnej. Implementacja ta przechowuje pliki w słowniku, udostępniając zawartość katalogu oraz tworzenia plików zgodnie z protokołem `StorageProvider`.
Podstawowym przetestowanym komponentem jest klasa `NotesStorage`, odpowiedzialna za zarządzanie cyklem życia notatek w lokalnym systemie plików. Do testów przygotowałem zastępczą implementację `InMemoryStorageProvider` (program 4.1), która symuluje zachowanie systemu plików w pamięci operacyjnej. Implementacja ta przechowuje pliki w słowniku, udostępniając zawartość katalogu oraz tworzenia plików zgodnie z protokołem `StorageProvider`.
#let in_memory_storage = [```swift
final class InMemoryStorageProvider: StorageProvider {
@@ -51,7 +51,7 @@ final class InMemoryStorageProvider: StorageProvider {
caption: [Implementacja zastępczego StorageProvider dla testów jednostkowych],
)
Na bazie powyższego kodu zbudowałem pięć przypadków testowych klasy `NotesStorageTests` (algorytm 4.2). Pierwszy z nich weryfikuje, że przy pustym katalogu metoda `loadNotes()` zwraca pustą tablicę. Kolejne dwa testy sprawdzają poprawność tworzenia pliku oraz odczytu istniejącej notatki. Ostatni test sprawdza, czy dwukrotne wywołanie metody tworzącej notatkę o tej samej nazwie generuje dwa odrębne obiekty.
Na bazie powyższego kodu zbudowałem pięć przypadków testowych klasy `NotesStorageTests` (program 4.2). Pierwszy z nich weryfikuje, że przy pustym katalogu metoda `loadNotes()` zwraca pustą tablicę. Kolejne dwa testy sprawdzają poprawność tworzenia pliku oraz odczytu istniejącej notatki. Ostatni test sprawdza, czy dwukrotne wywołanie metody tworzącej notatkę o tej samej nazwie generuje dwa odrębne obiekty.
#let notes_storage_tests = [```swift
@Suite
@@ -122,7 +122,7 @@ struct NotesStorageTests {
Komunikacja między urządzeniami wymaga poprawnej serializacji i deserializacji obiektów domenowych do formatu JSON. W ramach testów jednostkowych zweryfikowano dwie kluczowe struktury: `NoteMessage` oraz `NoteInvitation.NoteContent`.
`NoteMessageCodableTests` (algorytm 4.3) zawiera trzy przypadki testowe. Pierwszy sprawdza, czy obiekt jest poprawnie kodowany do formatu JSON z zachowaniem oczekiwanych nazw kluczy (`senderID`, `content`). Drugi weryfikuje poprawność dekodowania z ciągu znaków JSON. Trzeci test polega na zakodowaniu obiektu, potem zdekodowaniu i porównaniu go z obiektem oryginalnym.
`NoteMessageCodableTests` (program 4.3) zawiera trzy przypadki testowe. Pierwszy sprawdza, czy obiekt jest poprawnie kodowany do formatu JSON z zachowaniem oczekiwanych nazw kluczy (`senderID`, `content`). Drugi weryfikuje poprawność dekodowania z ciągu znaków JSON. Trzeci test polega na zakodowaniu obiektu, potem zdekodowaniu i porównaniu go z obiektem oryginalnym.
#let note_message_codable_tests = [```swift
@Suite
@@ -162,7 +162,7 @@ struct NoteMessageCodableTests {
caption: [Testy kodowania i dekodowania NoteMessage],
)
Analogiczny zbiór testów został przygotowany dla struktury `NoteInvitation.NoteContent` (algorytm 4.4), która reprezentuje migawkę notatki przesyłaną w zaproszeniu do sesji.
Analogiczny zbiór testów został przygotowany dla struktury `NoteInvitation.NoteContent` (program 4.4), która reprezentuje migawkę notatki przesyłaną w zaproszeniu do sesji.
#let note_content_codable_tests = [```swift
@Suite
@@ -193,7 +193,7 @@ struct NoteContentCodableTests {
caption: [Testy kodowania i dekodowania NoteContent],
)
`NoteInvitationTests` (algorytm 4.5) obejmuje siedem przypadków testowych. Dwa pierwsze weryfikują, czy metody `accept()` oraz `decline()` przekazują odpowiednio wartości logiczne `true` i `false` do handlera. Kolejne dwa testy sprawdzają czy wielokrotne wywołanie tej samej metody nie powoduje powtórnego wywołania handlera. Piąty test gwarantuje, że po zaakceptowaniu zaproszenia próba jego odrzucenia jest ignorowana. Ostatnie dwa testy weryfikują poprawność obliczanych właściwości: `noteName` zwraca tytuł notatki, a `id` jest tożsame z identyfikatorem nadawcy (`MCPeerID`).
`NoteInvitationTests` (program 4.5) obejmuje siedem przypadków testowych. Dwa pierwsze weryfikują, czy metody `accept()` oraz `decline()` przekazują odpowiednio wartości logiczne `true` i `false` do handlera. Kolejne dwa testy sprawdzają czy wielokrotne wywołanie tej samej metody nie powoduje powtórnego wywołania handlera. Piąty test gwarantuje, że po zaakceptowaniu zaproszenia próba jego odrzucenia jest ignorowana. Ostatnie dwa testy weryfikują poprawność obliczanych właściwości: `noteName` zwraca tytuł notatki, a `id` jest tożsame z identyfikatorem nadawcy (`MCPeerID`).
#let note_invitation_tests = [```swift
@Suite