/// <summary> /// Initialised when user logs in /// I probably would have created a container module for this /// </summary> public static UserSessionState Initialise(User user, IRepository <User, UserPet> userRepository, IRepository <Pet, PetMetric> petRepository, IRepository <Animal, AnimalMetric> animalRepository, IRepository <Interaction, MetricInteraction> interactionRepository, IConfiguration config, UserSessionBuilder userSessionBuilder, IContainer container) { //Validator var petRegistrationValidator = new PetRegistrationValidator(animalRepository, petRepository, userRepository); var petCareActionValidator = new PetCareActionValidator(petRepository, interactionRepository); var validator = new UserSessionRequestValidator(user, userRepository, petRepository, petRegistrationValidator, petCareActionValidator); //Persisters var petPersister = container.RecordPersister <Pet>(); var userPetPersister = container.RecordPersister <UserPet>(); var petMetricPersister = container.RecordPersister <PetMetric>(); //Processor var sessionRequestProcessor = new SessionRequestProcessor(user, userRepository, petRepository, interactionRepository, petPersister, userPetPersister, petMetricPersister, userSessionBuilder); return(new UserSessionState(user, userRepository, petRepository, validator, sessionRequestProcessor)); }
public void Setup() { _petMetrics = new List <PetMetric>(); _petMetrics.AddRange(TestData.UsersPets.BurberryPetMetrics); _petMetrics.AddRange(TestData.UsersPets.VersacePetMetrics); _nonReponsiveMetricIds = _petMetrics.Select(petMetric => petMetric.MetricId + 5).ToList(); _reponsiveMetricIds = _petMetrics.Select(petMetric => petMetric.MetricId).ToList(); _mockInteractionRepository = new Mock <IRepository <Interaction, MetricInteraction> >(); _mockPetRepository = new Mock <IRepository <Pet, PetMetric> >(); _mockPetRepository.Setup(m => m.FindAssociatedById(It.IsAny <int>())) .Returns(TestData.UsersPets.VersacePetMetrics); _validPayload = new UserPetCareAction() { PetId = TestData.UsersPets.VersacePetId, InteractionId = TestData.Interactions.TakeSelfieWithInteractionId, UserId = TestData.Users.MeJulieUserId }; _sut = new PetCareActionValidator(_mockPetRepository.Object, _mockInteractionRepository.Object); }