Added plany uml class diagram and modified some tests

This commit is contained in:
2026-01-16 19:28:07 -06:00
parent a2b948beb7
commit 0fa03d8f0c
2 changed files with 77 additions and 3 deletions

View File

@@ -16,12 +16,12 @@ public class Tests
[Test]
public async Task TestAddingCritter()
{
Assert.That(await DatabaseService.AddCritter(new Critter(){Name = "Test Critter"}), Is.True);
Assert.That(await DatabaseService.AddCritter(new Critter{Name = "Test Critter"}), Is.True);
}
[Test]
public async Task TestGettingCritter()
public async Task TestGettingCritterThatDoesntExist()
{
Assert.That(await DatabaseService.GetCritter(-1), Is.True);
Assert.That(await DatabaseService.GetCritter(-1), Is.False);
}
}

View File

@@ -0,0 +1,74 @@
@startuml
!theme crt-green
skinparam classAttributeIconSize 0
skinparam monochrome true
skinparam shadowing false
package "CritterFolio.DataModels" {
enum Gender {
Male
Female
}
class Critter {
+ Id : int
+ ProfileImagePath : string
+ Name : string
+ Gender : Gender
+ DateOfBirth : DateTime
+ FatherId : int
+ MotherId : int
+ Notes : string
}
class CritterEvent {
+ Id : int
+ CritterId : int
+ Name : string
+ DateTime : DateTime
+ Description : string
}
class Document {
+ Id : int
+ CritterId : int
+ Name : string
+ Path : string
+ Description : string
}
}
package "CritterFolio.Services" {
class DatabaseService <<static>> {
- {static} _db : SQLiteAsyncConnection
+ {static} Init() : Task
+ {static} ClearAllTables() : Task
.. Critter Operations ..
+ {static} AddCritter(critter : Critter) : Task<bool>
+ {static} UpdateCritter(critter : Critter) : Task<bool>
+ {static} DeleteCritter(critter : Critter) : Task<bool>
+ {static} GetAllCritters() : Task<List<Critter>>
+ {static} GetCritter(id : int) : Task<Critter>
.. Document Operations ..
+ {static} AddDocument(doc : Document) : Task<bool>
+ {static} GetAllDocumentsForCritter(id : int) : Task<List<Document>>
.. Event Operations ..
+ {static} AddEvent(ev : CritterEvent) : Task<bool>
+ {static} GetAllEventsForCritter(id : int) : Task<List<CritterEvent>>
}
}
' Relationships
Critter "1" *-- "0..*" CritterEvent : has >
Critter "1" *-- "0..*" Document : has >
Critter --> Gender : uses
' Self-references for lineage
Critter --> Critter : FatherId / MotherId
' Service usage
DatabaseService ..> Critter : manages
DatabaseService ..> CritterEvent : manages
DatabaseService ..> Document : manages
@enduml