Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
        public void SetUp()
        {
            _mockAnimalRepository = new Mock <IRepository <Animal, AnimalMetric> >();
            _mockUserRepository   = new Mock <IRepository <User, UserPet> >();
            _mockPetRepository    = new Mock <IRepository <Pet, PetMetric> >();

            _mockAnimalRepository.Setup(m => m.Find(It.IsAny <int>())).Returns(TestData.Animals.Chihuahua);
            _mockUserRepository.Setup(m => m.GetAssociatedIds(It.IsAny <int>()))
            .Returns(TestData.UsersPets.MeJuliesPetIds);
            _mockPetRepository.Setup(m => m.FindMany(TestData.UsersPets.MeJuliesPetIds))
            .Returns(TestData.UsersPets.MeJuliesPets);


            _sut         = new PetRegistrationValidator(_mockAnimalRepository.Object, _mockPetRepository.Object, _mockUserRepository.Object);
            _validNewPet = NopePet.NewPet("Princess", TestData.Animals.ChihuahuaAnimalId);
        }