diff --git a/critterfolio/CritterFolio/CritterFolioTests/UnitTest1.cs b/critterfolio/CritterFolio/CritterFolioTests/UnitTest1.cs index f87af3e..689b72e 100644 --- a/critterfolio/CritterFolio/CritterFolioTests/UnitTest1.cs +++ b/critterfolio/CritterFolio/CritterFolioTests/UnitTest1.cs @@ -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); } } \ No newline at end of file diff --git a/critterfolio/class-diagram.puml b/critterfolio/class-diagram.puml new file mode 100644 index 0000000..e4fac0d --- /dev/null +++ b/critterfolio/class-diagram.puml @@ -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} _db : SQLiteAsyncConnection + + {static} Init() : Task + + {static} ClearAllTables() : Task + .. Critter Operations .. + + {static} AddCritter(critter : Critter) : Task + + {static} UpdateCritter(critter : Critter) : Task + + {static} DeleteCritter(critter : Critter) : Task + + {static} GetAllCritters() : Task> + + {static} GetCritter(id : int) : Task + .. Document Operations .. + + {static} AddDocument(doc : Document) : Task + + {static} GetAllDocumentsForCritter(id : int) : Task> + .. Event Operations .. + + {static} AddEvent(ev : CritterEvent) : Task + + {static} GetAllEventsForCritter(id : int) : Task> + } +} + +' 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