public void ShouldCreateReportIfProcessingSucceeds() { var sut = CreateSut(); _builder.CreateReport(Arg.Any <FileReportModel>()).Returns("Report Data"); sut.Process(new List <Story>()); _writer.Received().OutputReport("Report Data", Arg.Any <string>(), Arg.Any <string>()); }
public void ExecuteJob_OutputFormatSpecified_CommandExecutedWithWriter() { // setup string connString = Guid.NewGuid().ToString(); ConnectionSetting connSetting = new ConnectionSetting(Guid.NewGuid().ToString(), connString); ReportJob job = new ReportJob(); job.Command = Guid.NewGuid().ToString(); job.OutputFormat = Guid.NewGuid().ToString(); job.OutputFileName = Guid.NewGuid().ToString(); job.OutputFilePath = Environment.CurrentDirectory; job.Delimiter = Guid.NewGuid().ToString(); IDbConnection dbConn = Substitute.For <IDbConnection>(); _dbConnectionFactory.CreateConnection(connString, true).Returns(dbConn); IDbCommand cmd = Substitute.For <IDbCommand>(); dbConn.CreateCommand().Returns(cmd); IReportWriter reportWriter = Substitute.For <IReportWriter>(); _reportWriterFactory.GetReportWriter(job.OutputFormat).Returns(reportWriter); IDataReader reader = Substitute.For <IDataReader>(); reader.GetSchemaTable().Returns(new DataTable()); cmd.ExecuteReader().Returns(reader); // execute ReportJobResult result = _reportExecutor.ExecuteJob(connSetting, job); // assert cmd.DidNotReceive().ExecuteNonQuery(); cmd.Received(1).ExecuteReader(); reportWriter.Received(1).Initialise(Arg.Any <String>(), job.Delimiter); reportWriter.Received(1).WriteHeader(Arg.Any <IEnumerable <String> >()); }