public void ParseLine_AValidLine_ShouldReturnAQuote() { string line = "Basic,Programming in Basic causes brain damage - Edsger Wybe Dijkstra"; Quote result = ImporterFunctional.ParseLine(line); Assert.Equal("Basic", result.Title); Assert.Equal("Programming in Basic causes brain damage - Edsger Wybe Dijkstra", result.Body); }
public void QuoteImporter_GivenMockFile_ShouldInsertIntoMockDatabase() { // 1. ReadFileListOfLines mock string actualLineFromFile = ""; Func <IEnumerable <string> > readFileListOfLines = () => { var listOfLines = new[] { "title, quote here" }; actualLineFromFile = listOfLines[0]; return(listOfLines); }; // 2. ParseLine mock string actualLineSentToParseLine = ""; Func <string, Quote> parseLine = s => { actualLineSentToParseLine = s; var quote = new Quote { Title = "title2", Body = "quote here2" }; return(quote); }; // 3. InsertQuoteIntoDatabase mock // using a closure IList <Quote> actualQuotes = new List <Quote>(); Action <Quote> insertQuoteIntoDatabase = quote => { actualQuotes.Add(quote); }; // compose. Action is a delegate - doesn't return anything Action run = () => ImporterFunctional.QuoteImporter( readFileListOfLines, parseLine, insertQuoteIntoDatabase); run(); // 1. Testing the ReadFileListOfLines mock was called Assert.Equal("title, quote here", actualLineFromFile); // 2. Testing the mock parser received the data from the ReadFileListOfLines mock Assert.Equal("title, quote here", actualLineSentToParseLine); // 3. Testing the mock database received the data from the ParseLine mock Assert.Equal("title2", actualQuotes[0].Title); Assert.Equal("quote here2", actualQuotes[0].Body); }
public void ParseLine_TooManyCommas_ShouldThrow() { string line = "asdf,asdf,asdf"; Assert.Throws <ApplicationException>(() => ImporterFunctional.ParseLine(line)); }
public void ParseLine_AnEmptyLine_ShouldThrow() { string line = ""; Assert.Throws <ApplicationException>(() => ImporterFunctional.ParseLine(line)); }
public void ReadFileList_ShouldReturn3Lines() { IEnumerable <string> result = ImporterFunctional.ReadFileListOfLines(); Assert.Equal(3, result.Count()); }