/// <summary> /// compare two snapshots with each other /// </summary> /// <param name="newshot"></param> /// <param name="savedshot"></param> /// <param name="options">the options</param> /// <returns></returns> public SnapshotResult Compare(Snapshot newshot, Snapshot savedshot, SnapshotOptions options) { if (newshot == null || savedshot == null) { return(SnapshotResult.SnapshotDoesNotExist(savedshot)); } var count = newshot.Count; if (count < savedshot.Count) { count = savedshot.Count; } var comparer = options.Comparer ?? LineCompare.Default; for (var i = 0; i < count; i++) { if (!comparer.Compare(newshot[i], savedshot[i])) { return(SnapshotResult.SnapshotsDoNotMatch(newshot, savedshot, i)); } } return(SnapshotResult.SnapshotsMatch(newshot, savedshot)); }
/// <summary> /// create a snapshot token of the string /// </summary> /// <param name="snapshot"></param> /// <param name="options"></param> /// <returns></returns> public static Snapshot Tokenize(string snapshot, SnapshotOptions options) { options = options.MergeDefault(); var parser = options.Parser ?? new LineParser(); var token = new Snapshot(); var lines = snapshot.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None); foreach (var line in lines) { token.Add(parser.Parse(line)); } return(token); }
public static void MatchSnapshot(this Snapshot snapshot, SnapshotOptions options) { options = options.MergeDefault(); var resolver = new SnapshotSetupResolver(); var setup = resolver.ResolveSnapshotSetup(); var client = GetClient(); var result = client.Validate(snapshot, setup, options); if (result.Status == SnapshotStatus.SnapshotDoesNotExist || result.Status == SnapshotStatus.UpdateSnapshot) { client.Write(snapshot, setup); result = SnapshotResult.SnapshotUpdated(snapshot, null); } SnapshotAsserter.AssertSnapshot(result); }
/// <summary> /// create a snapshot token of the object /// </summary> /// <typeparam name="T"></typeparam> /// <param name="snapshot"></param> /// <param name="options"></param> /// <returns></returns> public static Snapshot MapToToken <T>(T snapshot, SnapshotOptions options) { options = options.MergeDefault(); var mapper = ObjectMapper.Mapper.GetMapper(typeof(T)); var token = mapper.Map(snapshot, options); var parser = options.Parser; if (parser == null) { return(token); } for (var i = 0; i < token.Count(); i++) { token[i] = parser.Parse(token[i]); } return(token); }
public static void MatchSnapshot <T>(this string snapshot, Func <T> meta, SnapshotOptions options) { SnapshotTokenizer.Tokenize(snapshot, options) .SetMetadata(meta) .MatchSnapshot(options); }
public static void MatchSnapshot(this string snapshot, SnapshotOptions options) { SnapshotTokenizer.Tokenize(snapshot, options) .MatchSnapshot(options); }
public static void MatchSnapshot <T>(this T snapshot, Func <object> meta, SnapshotOptions options) { SnapshotTokenizer.MapToToken(snapshot, options) .SetMetadata(meta) .MatchSnapshot(options); }
public static void MatchSnapshot <T>(this T snapshot, SnapshotOptions options) { SnapshotTokenizer.MapToToken(snapshot, options) .MatchSnapshot(options); }
/// <summary> /// create a snapshot token of the object /// </summary> /// <typeparam name="T"></typeparam> /// <param name="snapshot"></param> /// <param name="options"></param> /// <returns></returns> public static Snapshot Tokenize <T>(T snapshot, SnapshotOptions options) { return(MapToToken <T>(snapshot, options)); }