@ -79,4 +79,161 @@ Ce projet suivra les conventions de nommage des commits mentionnées précédemm
Nécessite un fichier Config_DB.php pour fonctionner, n'hésitez pas à nous le demander.
Nécessite un fichier Config_DB.php pour fonctionner, n'hésitez pas à nous le demander.
## API ASP.NET
Comme dit, cette partie est sur cette branche. La solution et les projets se situent dans le dossier WebApi.
J'ai été trop ambitieux, je pensais aller plus rapidement en codant toute l'application d'abord puis en testant. J'ai donc codé tout le projet, cependant, je n'ai eu le temps
de tester que les managers d'une answer.
Ce manque de temps est notamment dû à des erreurs incomprisent et à une mauvaise injection de dépendance (et aussi car nous n'avions pas beaucoup d'heure de SAE).
### voici comment s'organise le projet :
```plantuml
@startuml
hide circle
allowmixing
skinparam classAttributeIconSize 0
skinparam classBackgroundColor #ffffb9
skinparam classBorderColor #800000
skinparam classArrowColor #800000
skinparam classFontColor #black
skinparam classFontName Tahoma
title XXX est à remplacer par le nom de la classe
file API
package WebAPI{
package Controllers{
class XXXController
class FrontController
}
}
API .> FrontController
FrontController -> XXXController
XXXController -> Unit
note top of Unit
dans le package WebAPI (c'est
juste que si je le met dedans,
le diagramme est mal ordonné)
end note
package ManagerInterfaces{
class IXXXManager< T >
}
package ServiceManagers{
class XXXServiceManager
}
package DTOs{
class XXXDto
}
IXXXManager < -- XXXServiceManager : T < - XXXDto
Unit -> XXXServiceManager
XXXServiceManager -.> XXXDto
package DataManagers{
class XXXDataManager
}
package Model{
class XXX
}
IXXXManager < -- XXXDataManager : T < - XXX
XXXServiceManager -> XXXDataManager
XXXDataManager -.> XXX
package EntityManagers{
class XXXEntityManager
}
package Entities{
class XXXEntity
}
package OrderCriterias{
class XXXOrderCriteria
}
IXXXManager -> XXXOrderCriteria
note right of XXXOrderCriteria
bien sûr, cette classe n'est
pas utilisée par l'interface
mais par ces filles. Mais
pour une raison de lisibilité,
la flèche part volontairement
de l'interface.
end note
IXXXManager < -- XXXEntityManager : T < - XXXEntity
XXXDataManager -> XXXEntityManager
XXXEntityManager -.> XXXEntity
artifact DbContext
Class MyDbContext{
--
+ Ctr
+ Ctr(options : DbContextOptions< MyDbContext > )
+ {override} OnConfiguring(options : DbContextOptionsBuilder)
}
database database
DbContext < |-- MyDbContext
XXXEntityManager -> MyDbContext
MyDbContext --> Entities : DbSet pour chaque entité
MyDbContext -> database
package ExtensionsClassLibrairie{
class XXXExtensionMethods
}
XXXDto < -- XXXExtensionMethods
XXX < -- XXXExtensionMethods
XXXEntity < -- XXXExtensionMethods
package StubbedDbContextLibrary{
class StubbedDbContext
}
MyDbContext < |---- StubbedDbContext
package FakeDatas{
class fakeXXX{
+ {static} datas
}
}
note right of fakeXXX
Bon, là, je me suis
trompé sur le nom
(sachant que les
fichiers s'appellent
fake-XXXs)
end note
StubbedDbContext -> FakeDatas
@enduml
```
** *je n'est pas mis les tests car si je les mettaient, le diagramme devenait illisible mais voici le détaille de ces derniers :***
- Chaque test utilise les classes "MyDbContext" (pour tester l'ajout) et "StubbedDbContext" (pour le reste).
- Le test "TestDataManagers" teste la bonne transcription des data managers,
- Le test "TestEntityManagers" teste le bon "requêtage" des entity managers,
- Le test "TestServiceManagers" teste la bonne transcription des service managers.
- Chaque test est divisé en plusieurs fonctions :
- une fonction TestXXX pour tester le manager de la classe XXX (appel les autres fonctions)
- une fonction TestFXXX pour tester chaque méthode 'F' du manager de la classe XXX
- une fonction Test appelant les fonctions TestXXX
- le programme construit un StubbedDbContext puis appel la méthode 'Test'
### concernant la documentation :
- toutes les classes sont documentées
- les managers ne sont pas documentés (j'ai décidé de documenté juste les interfaces car les documentations des managers auraient été similaires).
- les tests sont moins documentés que le reste
par GUITARD Maxence, VAN BRABRANDT Jade, DUCOURTHIAL Jérémy, CALATAYUD Yvan, NORTIER Damien
par GUITARD Maxence, VAN BRABRANDT Jade, DUCOURTHIAL Jérémy, CALATAYUD Yvan, NORTIER Damien