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}'")); }
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}'"); }
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}'"); }