コード例 #1
0
        public async Task UpdateAsync_ShouldReturnErrorWhenExceptionInFileService()
        {
            // ARRANGE
            var mockUmkQuery = new Mock <IUmkFilesQuery>();

            var mockRaspredelenie = new Mock <IRaspredelenieQuery>();

            mockRaspredelenie.Setup(r => r.CheckTeacherBySubjectAndTerm(It.IsAny <short>(), It.IsAny <int>(), It.IsAny <byte>()))
            .ReturnsAsync(new SPBoolResult {
                Result = true
            });

            var mockContextFactory = SetupContextFactory(mockUmkQuery.Object, null, mockRaspredelenie.Object);

            var mockFormFile = new Mock <IFormFile>();

            var mockFileService = new Mock <IFileService <UmkFilesConfiguration> >();

            mockFileService.Setup(f => f.UploadAsync(It.IsAny <IFormFile>()))
            .ThrowsAsync(new Exception("File is too big"));

            _sut = new UmkFileService(mockContextFactory.Object, _mapper, mockFileService.Object);
            var request = new UpdateRequest {
                Id = 1, Name = "SomeName", UmkFile = mockFormFile.Object
            };

            // ACT
            var actual = await _sut.UpdateAsync(request);

            // ASSERT
            Assert.Equal("File is too big", actual.Error.Message);
        }
コード例 #2
0
        public void Constructor_ShouldThrowExceptionWhenArgumentIsNull3()
        {
            var mockDbContextFactory = new Mock <IAppDbContextFactory>();
            var mockFileService      = new Mock <IFileService <UmkFilesConfiguration> >();

            Assert.Throws <ArgumentNullException>(() => _sut = new UmkFileService(mockDbContextFactory.Object, null, mockFileService.Object));
        }
コード例 #3
0
        public async Task GetBySubjectAndTermAsync_ShouldReturnErrorWhenExceptionInUmkQuery()
        {
            // ARRANGE
            var mockCurriculum = new Mock <ICurriculumQuery>();

            mockCurriculum.Setup(c => c.GetNameById(It.IsAny <int>()))
            .ThrowsAsync(new Exception("Mock exception"));

            var mockRaspredelenie = new Mock <IRaspredelenieQuery>();

            mockRaspredelenie.Setup(r => r.CheckTeacherBySubjectAndTerm(It.IsAny <short>(), It.IsAny <int>(), It.IsAny <byte>()))
            .ReturnsAsync(new SPBoolResult {
                Result = true
            });

            var mockContextFactory = SetupContextFactory(null, mockCurriculum.Object, mockRaspredelenie.Object);

            var mockFileService = new Mock <IFileService <UmkFilesConfiguration> >();

            _sut = new UmkFileService(mockContextFactory.Object, _mapper, mockFileService.Object);
            var request = new GetBySubjectAndTermRequest(1, 1);

            // ACT
            var actual = await _sut.GetBySubjectAndTermAsync(request);

            // ASSERT
            Assert.Equal("Mock exception", actual.Error.Message);
        }
コード例 #4
0
        public void GetFileById_ShouldReturnFileDto()
        {
            // ARRANGE
            var expectedFileName = GetTestUmkFiles().First().FileName;
            var expectedFileType = GetTestFileTypes().First().Type;
            var expected         = new FileDto {
                FileBytes = new byte[] { 1, 0, 1, 0 }, FileName = expectedFileName, FileType = expectedFileType
            };

            var mockFileService = new Mock <IFileService <UmkFilesConfiguration> >();

            mockFileService
            .Setup(f => f.GetFileBytes(It.IsAny <string>()))
            .Returns(expected.FileBytes);

            var mockContextFactory = SetupContextFactory(null, null, null);

            _sut = new UmkFileService(mockContextFactory.Object, _mapper, mockFileService.Object);

            // ACT
            var actual = _sut.GetFileById(1);

            // ASSERT
            Assert.Equal(ComparableObject.Convert(expected), ComparableObject.Convert(actual.Entity));
        }
コード例 #5
0
        public async Task GetBySubjectAndTermAsync_ShouldReturnErrorWhenDenyInAccess()
        {
            // ARRANGE
            var mockCurriculum = new Mock <ICurriculumQuery>();

            mockCurriculum.Setup(c => c.GetNameById(It.IsAny <int>()))
            .ReturnsAsync(new SPGetName {
                Name = "Some name"
            });
            mockCurriculum.Setup(c => c.CheckStudentBySubjectAndTerm(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <byte>()))
            .ReturnsAsync(new SPBoolResult {
                Result = false
            });

            var mockRaspredelenie = new Mock <IRaspredelenieQuery>();

            mockRaspredelenie.Setup(r => r.CheckTeacherBySubjectAndTerm(It.IsAny <short>(), It.IsAny <int>(), It.IsAny <byte>()))
            .ReturnsAsync(new SPBoolResult {
                Result = false
            });

            var mockContextFactory = SetupContextFactory(null, mockCurriculum.Object, mockRaspredelenie.Object);

            var mockFileService = new Mock <IFileService <UmkFilesConfiguration> >();

            _sut = new UmkFileService(mockContextFactory.Object, _mapper, mockFileService.Object);
            var request = new GetBySubjectAndTermRequest(1, 1);

            // ACT
            var actual = await _sut.GetBySubjectAndTermAsync(request);

            // ASSERT
            Assert.Equal("Отказ в доступе", actual.Error.Message);
        }
コード例 #6
0
        public async Task GetBySubjectAndTermAsync_ShouldReturnListToTeacher()
        {
            // ARRANGE
            var expected = new GetBySubjectAndTermResponse(new List <UmkFile>(), "SubjectName1");

            var mockCurriculum = new Mock <ICurriculumQuery>();

            mockCurriculum.Setup(c => c.GetNameById(It.IsAny <int>()))
            .ReturnsAsync(new SPGetName {
                Name = expected.SubjectName
            });

            var mockRaspredelenie = new Mock <IRaspredelenieQuery>();

            mockRaspredelenie.Setup(r => r.CheckTeacherBySubjectAndTerm(It.IsAny <short>(), It.IsAny <int>(), It.IsAny <byte>()))
            .ReturnsAsync(new SPBoolResult {
                Result = true
            });

            var mockContextFactory = SetupContextFactory(null, mockCurriculum.Object, mockRaspredelenie.Object);

            var mockFileService = new Mock <IFileService <UmkFilesConfiguration> >();

            _sut = new UmkFileService(mockContextFactory.Object, _mapper, mockFileService.Object);
            var request = new GetBySubjectAndTermRequest(1, 1);

            // ACT
            var actual = await _sut.GetBySubjectAndTermAsync(request);

            // ASSERT
            Assert.Equal(2, actual.Entity.UmkFiles.Count);
            Assert.Equal(ComparableObject.Convert(expected.SubjectName), ComparableObject.Convert(actual.Entity.SubjectName));
        }
コード例 #7
0
        public async Task UpdateAsync_ShouldReturnDataWhenFileIsNull()
        {
            // ARRANGE
            var expected = GetTestUmkFiles().First();

            expected.Name = "New name";

            var mockUmkQuery = new Mock <IUmkFilesQuery>();

            mockUmkQuery
            .Setup(u => u.Update(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <double?>(), It.IsAny <string>()))
            .ReturnsAsync(expected);

            var mockRaspredelenie = new Mock <IRaspredelenieQuery>();

            mockRaspredelenie.Setup(r => r.CheckTeacherBySubjectAndTerm(It.IsAny <short>(), It.IsAny <int>(), It.IsAny <byte>()))
            .ReturnsAsync(new SPBoolResult {
                Result = true
            });

            var mockContextFactory = SetupContextFactory(mockUmkQuery.Object, null, mockRaspredelenie.Object);

            var mockFileService = new Mock <IFileService <UmkFilesConfiguration> >();

            _sut = new UmkFileService(mockContextFactory.Object, _mapper, mockFileService.Object);
            var request = new UpdateRequest {
                Id = 1, Name = expected.Name, UmkFile = null
            };

            // ACT
            var actual = await _sut.UpdateAsync(request);

            // ASSERT
            Assert.Equal(expected, actual.Entity);
        }
コード例 #8
0
        public void GetById_ShouldReturnErrorWhenNotFound()
        {
            var mockContextFactory = SetupContextFactory(null, null, null);

            var mockFileService = new Mock <IFileService <UmkFilesConfiguration> >();

            _sut = new UmkFileService(mockContextFactory.Object, _mapper, mockFileService.Object);

            // ACT
            var actual = _sut.GetById(100);

            // ASSERT
            Assert.Equal("Файл УМК не найден.", actual.Error.Message);
        }
コード例 #9
0
        public void GetById_ShouldReturnData()
        {
            var mockContextFactory = SetupContextFactory(null, null, null);

            var mockFileService = new Mock <IFileService <UmkFilesConfiguration> >();

            _sut = new UmkFileService(mockContextFactory.Object, _mapper, mockFileService.Object);
            var expected = GetTestUmkFiles().First();

            expected.FileTypeId = 1;

            // ACT
            var actual = _sut.GetById(1);

            // ASSERT
            Assert.Equal(ComparableObject.Convert(expected), ComparableObject.Convert(actual.Entity));
        }
コード例 #10
0
        public async Task UpdateAsync_ShouldReturnDataWhenFileIsNotNull()
        {
            // ARRANGE
            var expected = new UmkFile {
                Id = 1, Active = true, CreatedAt = new DateTime(2020, 05, 1), FileName = "FileNameNew", FileSize = 1000, FileType = GetTestFileTypes().First(), Name = "NameNew", SubjectId = 1, TermId = 1, UpdatedAt = new DateTime(2020, 05, 2)
            };

            var mockUmkQuery = new Mock <IUmkFilesQuery>();

            mockUmkQuery
            .Setup(u => u.Update(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <double?>(), It.IsAny <string>()))
            .ReturnsAsync(expected);

            var mockRaspredelenie = new Mock <IRaspredelenieQuery>();

            mockRaspredelenie.Setup(r => r.CheckTeacherBySubjectAndTerm(It.IsAny <short>(), It.IsAny <int>(), It.IsAny <byte>()))
            .ReturnsAsync(new SPBoolResult {
                Result = true
            });

            var mockContextFactory = SetupContextFactory(mockUmkQuery.Object, null, mockRaspredelenie.Object);

            var mockFormFile = new Mock <IFormFile>();

            mockFormFile.SetupGet(f => f.ContentType).Returns(GetTestFileTypes().First().Type);
            mockFormFile.SetupGet(f => f.FileName).Returns(expected.FileName);

            var mockFileService = new Mock <IFileService <UmkFilesConfiguration> >();

            mockFileService
            .Setup(f => f.UploadAsync(It.IsAny <IFormFile>()))
            .ReturnsAsync(expected.FileName);

            _sut = new UmkFileService(mockContextFactory.Object, _mapper, mockFileService.Object);
            var request = new UpdateRequest {
                Id = 1, Name = expected.Name, UmkFile = mockFormFile.Object
            };

            // ACT
            var actual = await _sut.UpdateAsync(request);

            // ASSERT
            Assert.Equal(expected, actual.Entity);
        }
コード例 #11
0
        public void GetFileById_ShouldReturnErrorWhenExceptionInFileService()
        {
            // ARRANGE
            var mockFileService = new Mock <IFileService <UmkFilesConfiguration> >();

            mockFileService
            .Setup(f => f.GetFileBytes(It.IsAny <string>()))
            .Throws(new Exception("File was not found"));

            var mockContextFactory = SetupContextFactory(null, null, null);

            _sut = new UmkFileService(mockContextFactory.Object, _mapper, mockFileService.Object);

            // ACT
            var actual = _sut.GetFileById(1);

            // ASSERT
            Assert.Equal("File was not found", actual.Error.Message);
        }
コード例 #12
0
        public async Task DeleteAsync_ShouldReturnErrorWhenExceptionInUmkQuery()
        {
            // ARRANGE
            var mockUmkQuery = new Mock <IUmkFilesQuery>();

            mockUmkQuery
            .Setup(u => u.Delete(It.IsAny <int>()))
            .ThrowsAsync(new Exception("Mock exception"));

            var mockContextFactory = SetupContextFactory(mockUmkQuery.Object, null, null);

            var mockFileService = new Mock <IFileService <UmkFilesConfiguration> >();

            _sut = new UmkFileService(mockContextFactory.Object, _mapper, mockFileService.Object);

            // ACT
            var actual = await _sut.DeleteAsync(1);

            // ASSERT
            Assert.Equal("Mock exception", actual.Error.Message);
        }
コード例 #13
0
        public async Task DeleteAsync_ShouldReturnTrue()
        {
            // ARRANGE
            var mockUmkQuery = new Mock <IUmkFilesQuery>();

            mockUmkQuery
            .Setup(u => u.Delete(It.IsAny <int>()))
            .ReturnsAsync(1);

            var mockContextFactory = SetupContextFactory(mockUmkQuery.Object, null, null);

            var mockFileService = new Mock <IFileService <UmkFilesConfiguration> >();

            _sut = new UmkFileService(mockContextFactory.Object, _mapper, mockFileService.Object);

            // ACT
            var actual = await _sut.DeleteAsync(1);

            // ASSERT
            Assert.True(actual.Entity);
        }
コード例 #14
0
        public async Task UpdateAsync_ShouldReturnErrorWhenDenyInAccess()
        {
            // ARRANGE
            var mockUmkQuery = new Mock <IUmkFilesQuery>();

            mockUmkQuery
            .Setup(u => u.Update(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <double?>(), It.IsAny <string>()))
            .ThrowsAsync(new Exception("Mock exception"));

            var mockRaspredelenie = new Mock <IRaspredelenieQuery>();

            mockRaspredelenie.Setup(r => r.CheckTeacherBySubjectAndTerm(It.IsAny <short>(), It.IsAny <int>(), It.IsAny <byte>()))
            .ReturnsAsync(new SPBoolResult {
                Result = false
            });

            var mockContextFactory = SetupContextFactory(mockUmkQuery.Object, null, mockRaspredelenie.Object);

            var mockFormFile = new Mock <IFormFile>();

            mockFormFile.SetupGet(f => f.ContentType).Returns(GetTestFileTypes().First().Type);
            mockFormFile.SetupGet(f => f.FileName).Returns("SomeName");

            var mockFileService = new Mock <IFileService <UmkFilesConfiguration> >();

            mockFileService
            .Setup(f => f.UploadAsync(It.IsAny <IFormFile>()))
            .ReturnsAsync("SomeName");

            _sut = new UmkFileService(mockContextFactory.Object, _mapper, mockFileService.Object);
            var request = new UpdateRequest {
                Id = 1, Name = "SomeName", UmkFile = mockFormFile.Object
            };

            // ACT
            var actual = await _sut.UpdateAsync(request);

            // ASSERT
            Assert.Equal("Отказ в доступе", actual.Error.Message);
        }
コード例 #15
0
        public async Task UpdateAsync_ShouldReturnErrorWhenNotFound()
        {
            // ARRANGE
            var mockUmkQuery = new Mock <IUmkFilesQuery>();

            var mockContextFactory = SetupContextFactory(mockUmkQuery.Object, null, null);

            var mockFormFile = new Mock <IFormFile>();

            var mockFileService = new Mock <IFileService <UmkFilesConfiguration> >();

            _sut = new UmkFileService(mockContextFactory.Object, _mapper, mockFileService.Object);
            var request = new UpdateRequest {
                Id = 100, Name = "SomeName", UmkFile = mockFormFile.Object
            };

            // ACT
            var actual = await _sut.UpdateAsync(request);

            // ASSERT
            Assert.Equal("Файл УМК не найден.", actual.Error.Message);
        }
コード例 #16
0
        public async Task CreateAsync_ShouldReturnErrorWhenExceptionInFileService()
        {
            // ARRANGE
            var expected = new UmkFile {
                Id = 10, Active = true, CreatedAt = new DateTime(2020, 05, 1), FileName = "FileNameNew", FileSize = 1000, FileType = GetTestFileTypes().First(), Name = "NameNew", SubjectId = 1, TermId = 1, UpdatedAt = new DateTime(2020, 05, 2)
            };

            var mockRaspredelenie = new Mock <IRaspredelenieQuery>();

            mockRaspredelenie.Setup(r => r.CheckTeacherBySubjectAndTerm(It.IsAny <short>(), It.IsAny <int>(), It.IsAny <byte>()))
            .ReturnsAsync(new SPBoolResult {
                Result = true
            });
            var mockContextFactory = SetupContextFactory(null, null, mockRaspredelenie.Object);

            var mockFormFile = new Mock <IFormFile>();

            mockFormFile.SetupGet(f => f.ContentType).Returns(GetTestFileTypes().First().Type);
            mockFormFile.SetupGet(f => f.FileName).Returns(expected.FileName);

            var mockFileService = new Mock <IFileService <UmkFilesConfiguration> >();

            mockFileService
            .Setup(f => f.UploadAsync(It.IsAny <IFormFile>()))
            .ThrowsAsync(new Exception("File is too big"));

            _sut = new UmkFileService(mockContextFactory.Object, _mapper, mockFileService.Object);
            var request = new CreateRequest {
                Name = expected.Name, SubjectId = 1, TermId = 1, UmkFile = mockFormFile.Object
            };

            // ACT
            var actual = await _sut.CreateAsync(request);

            // ASSERT
            Assert.Equal("File is too big", actual.Error.Message);
        }
コード例 #17
0
        public void Constructor_ShouldThrowExceptionWhenArgumentIsNull2()
        {
            var mockDbContextFactory = new Mock <IAppDbContextFactory>();

            Assert.Throws <ArgumentNullException>(() => _sut = new UmkFileService(mockDbContextFactory.Object, _mapper, null));
        }