/// <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);
        }
Beispiel #3
0
        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);
        }
Beispiel #5
0
 public static void MatchSnapshot <T>(this string snapshot, Func <T> meta, SnapshotOptions options)
 {
     SnapshotTokenizer.Tokenize(snapshot, options)
     .SetMetadata(meta)
     .MatchSnapshot(options);
 }
Beispiel #6
0
 public static void MatchSnapshot(this string snapshot, SnapshotOptions options)
 {
     SnapshotTokenizer.Tokenize(snapshot, options)
     .MatchSnapshot(options);
 }
Beispiel #7
0
 public static void MatchSnapshot <T>(this T snapshot, Func <object> meta, SnapshotOptions options)
 {
     SnapshotTokenizer.MapToToken(snapshot, options)
     .SetMetadata(meta)
     .MatchSnapshot(options);
 }
Beispiel #8
0
 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));
 }