예제 #1
0
        public void SaveAssembly_GivenAssemblyButFailsToSave_ThrowsException()
        {
            //Arrange
            BuildProject buildProject = new BuildProject
            {
                SpecificationId = specificationId,
                Build           = new Build
                {
                    Assembly = new byte[100]
                }
            };

            ISourceFileRepository sourceFileRepository = CreateSourceFileRepository();

            sourceFileRepository.When(x => x.SaveAssembly(Arg.Is(buildProject.Build.Assembly), Arg.Is(buildProject.SpecificationId)))
            .Do(x => { throw new Exception(); });

            ILogger logger = CreateLogger();

            SourceCodeService sourceFileService = CreateSourceCodeService(sourceFileRepository, logger);

            //Act
            Func <Task> test = async() => await sourceFileService.SaveAssembly(buildProject);

            //Assert
            test
            .Should()
            .ThrowExactly <Exception>();

            logger
            .Received(1)
            .Error(Arg.Any <Exception>(), Arg.Is($"Failed to save assembly for specification id '{buildProject.SpecificationId}'"));
        }
예제 #2
0
        public async Task SaveAssembly_GivenAssemblyAndSabeSuccessful_LogsSuccess()
        {
            //Arrange
            BuildProject buildProject = new BuildProject
            {
                SpecificationId = specificationId,
                Build           = new Build
                {
                    Assembly = new byte[100]
                }
            };

            ISourceFileRepository sourceFileRepository = CreateSourceFileRepository();

            ILogger logger = CreateLogger();

            SourceCodeService sourceFileService = CreateSourceCodeService(sourceFileRepository, logger);

            //Act
            await sourceFileService.SaveAssembly(buildProject);

            //Assert
            logger
            .Received(1)
            .Information($"Saved assembly for specification id: '{buildProject.SpecificationId}'");
        }
예제 #3
0
        public void SaveAssembly_GivenBuildProjectDoesntNotContainAssembly_ThrowsArgumentException()
        {
            //Arrange
            BuildProject buildProject = new BuildProject
            {
                SpecificationId = specificationId,
                Build           = new Build()
            };

            ISourceFileRepository sourceFileRepository = CreateSourceFileRepository();

            ILogger logger = CreateLogger();

            SourceCodeService sourceFileService = CreateSourceCodeService(sourceFileRepository, logger);

            //Act
            Func <Task> test = async() => await sourceFileService.SaveAssembly(buildProject);

            //Assert
            test
            .Should()
            .ThrowExactly <ArgumentException>()
            .Which
            .Message
            .Should()
            .Be($"Assembly not present on build project for specification id: '{buildProject.SpecificationId}'");
        }