public void BlockMask_UpdateFrom() { var mask = new BlockMask(".", new Block('('), new Block('0', 2, 2), new Block(')')); mask.Blocks.Length.Should().Be(3); mask.Delimiters.Should().Be("."); mask.SetText("(1234)"); mask.ToString().Should().Be("(.12.)|"); mask.CaretPos = 1; mask.UpdateFrom(new BlockMask(":", new Block('0', 1, 1), new Block('0', 1, 1))); mask.Blocks.Length.Should().Be(2); mask.Delimiters.Should().Be(":"); // state should be preserved (Text, Caret/Selection) mask.ToString().Should().Be("1|:2"); mask.UpdateFrom(null); mask.Blocks.Length.Should().Be(2); mask.Delimiters.Should().Be(":"); // state should be preserved (Text, Caret/Selection) mask.ToString().Should().Be("1|:2"); }
public void BlockMask_Delete() { 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.34.5678"); mask.ToString().Should().Be("12.34.5678|"); mask.Delete(); mask.ToString().Should().Be("12.34.5678|"); mask.CaretPos = 0; mask.Delete(); mask.ToString().Should().Be("|2.34.5678"); mask.Delete(); mask.ToString().Should().Be("|34.56.78"); mask.SetText("12."); mask.Selection = (0, 2); mask.Delete(); mask.ToString().Should().Be("|"); mask.Insert("12345"); mask.ToString().Should().Be("12.34.5|"); mask.CaretPos = 5; mask.Delete(); mask.ToString().Should().Be("12.34|"); }