public void ReturnInvoiceWithCorrectProperties_WhenValidStringPassed(string input) { char separator = '/'; var invParser = new InvoiceParser(separator); var decParserMock = new Mock <IDecimalParser>(); string numExpected = "12345"; string currExpected = "USD"; decimal daysExpected = 14.23m; decimal rateExpected = 300; decimal vatExpected = 21; var queue = new Queue <decimal>(); queue.Enqueue(daysExpected); queue.Enqueue(rateExpected); queue.Enqueue(vatExpected / 100); decParserMock.Setup(x => x.ParseDecimal(It.IsAny <string>())).Returns(queue.Dequeue); var parsedInv = invParser.ParseInvoice(input, decParserMock.Object); Assert.AreEqual(numExpected, parsedInv.Number); Assert.AreEqual(currExpected, parsedInv.Currency); Assert.AreEqual(daysExpected, parsedInv.Days); Assert.AreEqual(rateExpected, parsedInv.Rate); Assert.AreEqual(vatExpected, parsedInv.VatPercent); }
public void ThrowArgumentException_WhenPassedInvoiceAsStringIsWhiteSpaceOrEmptyString(string input) { var invParser = new InvoiceParser('/'); var decParserMock = new Mock <IDecimalParser>(); string invoiceAsStr = null; Assert.Throws <ArgumentNullException>(() => invParser.ParseInvoice(invoiceAsStr, decParserMock.Object)); }