public void SaveSnapshots() { var snapshotId = _snapshotResolver.ResolveSnapshotSetup(); var writer = new SnapshotWriter(); // record the current snapshot var dataOne = "this is\r\na\r\ntest"; var token = SnapshotTokenizer.Tokenize(dataOne) .SetMetadata(() => new { id = "one" }); writer.Write(token, snapshotId); var dataTwo = "this is\r\na second\r\ntest"; token = SnapshotTokenizer.Tokenize(dataTwo) .SetMetadata(() => new { id = "two" }); writer.Write(token, snapshotId); // ensure there are 2 snapshots in the file var reader = new SnapshotReader(); var saved = reader.Read(snapshotId); saved.Count().Should().Be(2); // match the snapshots dataOne.MatchSnapshot(() => new { id = "one" }); dataTwo.MatchSnapshot(() => new { id = "two" }); //delete file and folder System.IO.File.Delete(snapshotId.GetFilePath()); }
public void SnapshotOptions_Configure() { var sn = new StringBuilder() .AppendLine("Line 1") .AppendLine("Line 2") .AppendLine("Line 3"); var savedsnap = SnapshotTokenizer.Tokenize(sn.ToString()); var config = new SnapshotOptions(); config.SetComparer((newline, savedline) => newline.Value.Replace(" ", string.Empty, StringComparison.OrdinalIgnoreCase).Equals(savedline.Value.Replace(" ", string.Empty, StringComparison.OrdinalIgnoreCase))); sn = new StringBuilder() .AppendLine("Line 1") .AppendLine(" Line 2") .AppendLine(" Line 3"); var newsnap = SnapshotTokenizer.Tokenize(sn.ToString()); var comparer = new SnapshotCompare(); var result = comparer.Compare(newsnap, savedsnap, config); result.Status.Should().Be(SnapshotStatus.SnapshotsMatch); SnapshotOptions.Setup(o => { }); }
public void MatchSnapshotToken() { var token = SnapshotTokenizer.Tokenize("match\r\nsnapshot\r\ntoken"); Action match = () => token.MatchSnapshot(); match.Should().NotThrow(); }
public void LineParser_Parse() { var options = new SnapshotOptions(); options.AddDirective(line => line.Replace(" ", string.Empty, StringComparison.OrdinalIgnoreCase)); var sn = new StringBuilder() .AppendLine("Line 1") .AppendLine("Line 2") .AppendLine("Line 3"); var savedsnap = SnapshotTokenizer.Tokenize(sn.ToString(), options); sn = new StringBuilder() .AppendLine("Line 1") .AppendLine(" Line 2") .AppendLine(" Line 3"); var newsnap = SnapshotTokenizer.Tokenize(sn.ToString()); var comparer = new SnapshotCompare(); var result = comparer.Compare(newsnap, savedsnap, options); result.Status.Should().Be(SnapshotStatus.SnapshotsDoNotMatch); newsnap = SnapshotTokenizer.Tokenize(sn.ToString(), options); result = comparer.Compare(newsnap, savedsnap, options); result.Status.Should().Be(SnapshotStatus.SnapshotsMatch); }
public void UpdateSnapshot() { var snapshotId = _snapshotResolver.ResolveSnapshotSetup(); var writer = new SnapshotWriter(); // record the current snapshot var data = "this is\r\na\r\ntest"; var token = SnapshotTokenizer.Tokenize(data); writer.Write(token, snapshotId); // ensure the data matches data.MatchSnapshot(); data = "this is\r\nnew\r\ndata"; token = SnapshotTokenizer.Tokenize(data); writer.Write(token, snapshotId); // ensure the data is updated data.MatchSnapshot(); //delete file and folder System.IO.File.Delete(snapshotId.GetFilePath()); }
public void Mapper_Dictionaries_String() { var item = new { Dict = new Dictionary <string, string> { { "1", "one" }, { "2", "two" } } }; SnapshotTokenizer.Tokenize(item).ToString().Should().Be($"Dict:{Environment.NewLine} Key: 1{Environment.NewLine} Value: one{Environment.NewLine} Key: 2{Environment.NewLine} Value: two"); }
public void CustomObjectMap() { ObjectMapper.Configure <CustomMapClass>(m => { var token = SnapshotTokenizer.Tokenize(m.Value); return(token); }); var itm = new CustomMapClass { Value = "some value", Index = 0 }; itm.MatchSnapshot(); }
public void SaveSnapshot() { var data = "this is\r\na\r\ntest"; var snapshotId = _snapshotResolver.ResolveSnapshotSetup(); var token = SnapshotTokenizer.Tokenize(data); var writer = new SnapshotWriter(); writer.Write(token, snapshotId); //reload snapshot to compare data.MatchSnapshot(); //delete file and folder System.IO.File.Delete(snapshotId.GetFilePath()); }
public void Mapper_Dictionaries() { var item = new { Dict = new Dictionary <string, DictionaryItem> { { "1", new DictionaryItem { Id = 1, Value = "one" } }, { "2", new DictionaryItem { Id = 2, Value = "two" } } } }; SnapshotTokenizer.Tokenize(item).ToString().Should().Be($"Dict:{Environment.NewLine} Key: 1{Environment.NewLine} Value:{Environment.NewLine} Id: 1{Environment.NewLine} Value: one{Environment.NewLine} Key: 2{Environment.NewLine} Value:{Environment.NewLine} Id: 2{Environment.NewLine} Value: two"); }
public void SnapshotTokenizer_MapToToken_MergeMeta_CustomMapper() { ObjectMapper.Configure <TokenizerTestItem>(item => { var snapshot = SnapshotTokenizer.Tokenize(new { id = item.Id }); snapshot.SetMetadata(() => new { Id = item.Id }); return(snapshot); }); var token = SnapshotTokenizer.MapToToken(new TokenizerTestItem { Id = 1 }); token.Metadata["Id"].Should().Be("1"); }
public void Snapshot_Options() { var sn = new StringBuilder() .AppendLine("Line 1") .AppendLine("Line 2") .AppendLine("Line 3"); var snapshot = SnapshotTokenizer.Tokenize(sn.ToString()); snapshot.MatchSnapshot(SnapshotOptions.Create(c => { c.UpdateSavedSnapshot(); })); sn = new StringBuilder() .AppendLine("Line 1") .AppendLine(" Line 2") .AppendLine(" Line 3"); snapshot = SnapshotTokenizer.Tokenize(sn.ToString()); var options = new SnapshotOptions { Comparer = new LineCompare((newline, savedline) => newline.Value.Replace(" ", string.Empty, StringComparison.OrdinalIgnoreCase).Equals(savedline.Value.Replace(" ", string.Empty, StringComparison.OrdinalIgnoreCase))) }; snapshot.MatchSnapshot(options); options = SnapshotOptions.Create(o => { o.SetComparer((newline, savedline) => newline.Value.Replace(" ", string.Empty, StringComparison.OrdinalIgnoreCase).Equals(savedline.Value.Replace(" ", string.Empty, StringComparison.OrdinalIgnoreCase))); }); snapshot.MatchSnapshot(options); // reset SnapshotOptions.Setup(o => { }); }
public void MatchMultipleSnapshotTokens() { var token = SnapshotTokenizer.Tokenize("test\r\nsnapshot\r\none") .SetMetadata(() => new { id = "one" }); Action match = () => token.MatchSnapshot(); match.Should().NotThrow(); token = SnapshotTokenizer.Tokenize("test\r\nsnapshot\r\ntwo") .SetMetadata(() => new { id = "2" }); match = () => token.MatchSnapshot(); match.Should().NotThrow(); var snapshotResolver = new SnapshotSetupResolver(); var reader = new SnapshotReader(); var snapshots = reader.Read(snapshotResolver.ResolveSnapshotSetup()); snapshots.Count().Should().Be(2); snapshots.Any(s => s.Metadata["id"] == "one").Should().BeTrue(); snapshots.Any(s => s.Metadata["id"] == "2").Should().BeTrue(); }
/// <summary> /// create a tokenized snapshot of the object /// </summary> /// <typeparam name="T"></typeparam> /// <param name="token"></param> /// <param name="options"></param> /// <returns></returns> public static Snapshot Tokenize <T>(this T token, SnapshotOptions options) { return(SnapshotTokenizer.Tokenize(token, options)); }
/// <summary> /// create a tokenized snapshot of the object /// </summary> /// <typeparam name="T"></typeparam> /// <param name="token"></param> /// <returns></returns> public static Snapshot Tokenize <T>(this T token) { return(SnapshotTokenizer.Tokenize(token)); }