public void GivenAValidString_WhenParsed_ThenCorrectSearchValueShouldBeReturned(string s, string expectedSystem, string expectedCode, decimal expectedQuantity)
        {
            QuantitySearchValue value = QuantitySearchValue.Parse(s);

            Assert.NotNull(value);
            Assert.Equal(expectedSystem, value.System);
            Assert.Equal(expectedCode, value.Code);
            Assert.Equal(expectedQuantity, value.Quantity);
        }
        public void GivenAStringWithTrailingZero_WhenParsed_ThenTrailingZeroShouldBePreserved()
        {
            string expected = "0.010|system|code";

            QuantitySearchValue value = QuantitySearchValue.Parse(expected);

            Assert.NotNull(value);
            Assert.Equal("system", value.System);
            Assert.Equal("code", value.Code);
            Assert.Equal(0.010m, value.Quantity);
            Assert.Equal(expected, value.ToString());
        }
 public void GivenAStringContainingMoreThanTwoTokenSeparators_WhenParsing_ThenExceptionShouldBeThrown()
 {
     Assert.Throws <FormatException>(() => QuantitySearchValue.Parse(@"50|sys\|tem|co|de|"));
 }
 public void GivenAnInvalidNumber_WhenParsing_ThenExceptionShouldBeThrown(string s)
 {
     Assert.Throws <FormatException>(() => QuantitySearchValue.Parse(s));
 }