public void TestBoundaries() { RawSampleProductFormat raw = new RawSampleProductFormat( "55555555 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 11111111 22222222 33333333 44444444 55555555 66666666 NNNNNNNNN aaaaaaaaa"); Assert.That(raw.ProductId, Is.EqualTo("55555555")); Assert.That(raw.ProductDescription, Is.EqualTo(new String('a', 59))); Assert.That(raw.RegularSingularPrice, Is.EqualTo("11111111")); Assert.That(raw.PromotionalSingularPrice, Is.EqualTo("22222222")); Assert.That(raw.RegularSplitPrice, Is.EqualTo("33333333")); Assert.That(raw.PromotionalSplitPrice, Is.EqualTo("44444444")); Assert.That(raw.RegularForX, Is.EqualTo("55555555")); Assert.That(raw.PromotionalForX, Is.EqualTo("66666666")); Assert.That(raw.Flags, Is.EqualTo("NNNNNNNNN")); Assert.That(raw.ProductSize, Is.EqualTo("aaaaaaaaa")); }
IProductRecord Parse(RawSampleProductFormat raw) { var result = new ProductRecord(); result.ProductID = int.Parse(raw.ProductId); result.ProductDescription = raw.ProductDescription.Trim(); result.RegularCalculatorPrice = CalculatorPrice(raw.RegularSingularPrice, raw.RegularSplitPrice, raw.RegularForX); result.RegularDisplayPrice = FormatCurrencyForDisplay(result.RegularCalculatorPrice); result.PromotionalCalculatorPrice = CalculatorPrice(raw.PromotionalSingularPrice, raw.PromotionalSplitPrice, raw.PromotionalForX); result.PromotionalDisplayPrice = result.PromotionalCalculatorPrice == 0 ? "N/A" : FormatCurrencyForDisplay(result.PromotionalCalculatorPrice); result.TaxRate = CheckFlag(raw.Flags, 5) ? 7.775m : 0; result.Measure = CheckFlag(raw.Flags, 3) ? UnitOfMeasure.Pound : UnitOfMeasure.Each; result.ProductSize = raw.ProductSize.Trim(); return(result); }
public IProductRecord Parse(string s) { RawSampleProductFormat raw = new RawSampleProductFormat(s); return(Parse(raw)); }