public void BlockMask_Internals() { var mask = new BlockMask(".", new Block('('), new Block('0', 2, 2), new Block(')')); mask.Clear(); // make sure it is initialized mask.Mask.Should().Be(@"^\(([\.](\d(\d([\.](\))?)?)?)?)?$"); mask = new BlockMask(".", new Block('0', 1, 2), new Block('0', 1, 2), new Block('0', 2, 4)); mask.Clear(); // make sure it is initialized mask.Mask.Should().Be(@"^\d(\d)?([\.](\d(\d)?([\.](\d(\d(\d(\d)?)?)?)?)?)?)?$"); Assert.Throws <ArgumentException>(() => new BlockMask()); }
public void BlockMask_Insert() { var mask = new BlockMask(".", new Block('0', 1, 2), new Block('0', 1, 2), new Block('0', 2, 4)); mask.ToString().Should().Be("|"); mask.Insert("12."); mask.ToString().Should().Be("12.|"); mask.Clear(); mask.Insert("xx12.34xx.5678"); mask.Text.Should().Be("12.34.5678"); mask.Clear(); mask.Insert("1.1.99"); mask.ToString().Should().Be("1.1.99|"); mask.CaretPos = 0; mask.Insert("0"); mask.ToString().Should().Be("0|1.1.99"); mask.Insert("0"); mask.ToString().Should().Be("00|.1.199"); mask.Insert("0"); mask.ToString().Should().Be("00.0|.1199"); mask.Insert("0"); mask.ToString().Should().Be("00.00|.1199"); // w/o separator mask = new BlockMask("", new Block('0', 1, 2), new Block('a', 1, 2), new Block('0', 2, 4)); mask.Insert("xx12.34xx.5678"); mask.Text.Should().Be("12xx5678"); mask.Clear(); mask.Insert("1.x.99"); mask.ToString().Should().Be("1x99|"); mask.CaretPos = 0; mask.Insert("0"); mask.ToString().Should().Be("0|1x99"); mask.Insert("0"); mask.ToString().Should().Be("00|x99"); mask.Insert("y"); mask.ToString().Should().Be("00y|x99"); mask.Insert("z"); mask.ToString().Should().Be("00yz|99"); mask.Insert("1"); mask.ToString().Should().Be("00yz1|99"); }