コード例 #1
0
        public async Task Save_SendsCoachesToRepository()
        {
            // Given
            SaveFacultyUseCase <EllCoach, Dto, Dto> useCase = GetUseCase <EllCoach, Dto, Dto>();
            List <EllCoach> entities = GetFaculty <EllCoach>();

            // When
            await useCase.SaveAsync(entities);

            // Then
            Assert.Equal(entities.Count, dtos.Count);
            Assert.Equal(entities.Count, identityDtos.Count);
        }
コード例 #2
0
        public async Task Save_SendsInstructorsAndIdentitiesToRepository()
        {
            // Given
            SaveFacultyUseCase <Instructor, Dto, Dto> useCase = GetUseCase <Instructor, Dto, Dto>();
            List <Instructor> entities = GetFaculty <Instructor>();

            // When
            await useCase.SaveAsync(entities);

            // Then
            Assert.Equal(entities.Count, dtos.Count);
            Assert.Equal(entities.Count, identityDtos.Count);
        }
コード例 #3
0
        SaveFacultyUseCase <S, T, U> GetUseCase <S, T, U>() where S : Person where T : Dto, new() where U : Dto, new()
        {
            Mock <IMappingProvider> mappingMock = new Mock <IMappingProvider>();

            mappingMock.Setup(prov => prov.Map <T, S>(It.IsAny <S>())).Returns(new T());
            mappingMock.Setup(prov => prov.Map <U, S>(It.IsAny <S>())).Returns(new U());

            Mock <IFacultyRepository <T> > repositoryMock = new Mock <IFacultyRepository <T> >();

            repositoryMock.Setup(rep => rep.SaveFacultyAsync(It.IsAny <List <T> >())).Callback <List <Dto> >((obj) => dtos = obj);

            Mock <IIdentityRepository <U> > identityRepositoryMock = new Mock <IIdentityRepository <U> >();

            identityRepositoryMock.Setup(rep => rep.SaveAsync(It.IsAny <List <U> >())).Callback <List <Dto> >((obj) => identityDtos = obj);

            SaveFacultyUseCase <S, T, U> useCase = new SaveFacultyUseCase <S, T, U>(repositoryMock.Object, identityRepositoryMock.Object, mappingMock.Object);

            return(useCase);
        }