Ejemplo n.º 1
0
        public void MapperContext_Options()
        {
            var options = new SnapshotOptions();
            var ctx     = new MapperContext(null, new Snapshot(), options, 0);

            Assert.AreSame(ctx.Options, options);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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 => { });
        }
Ejemplo n.º 4
0
        static void Snapshot(SnapshotOptions opts)
        {
            var hyperDocument = new HyperDocument();
            var uri           = new Uri(opts.Url);

            hyperDocument.Snapshot(uri, opts.Input);
        }
Ejemplo n.º 5
0
        public void LineParser_MatchSnapshot()
        {
            var options = SnapshotOptions.Create(o =>
            {
                o.AddDirective(line => line.Replace(" ", string.Empty, StringComparison.OrdinalIgnoreCase));
                o.UpdateSavedSnapshot();
            });


            var sn = new StringBuilder()
                     .AppendLine("Line 1")
                     .AppendLine("Line 2")
                     .AppendLine("Line 3")
                     .ToString();

            sn.MatchSnapshot(options);


            sn = new StringBuilder()
                 .AppendLine("Line    1")
                 .AppendLine("   Line 2")
                 .AppendLine("  Line     3")
                 .ToString();

            options = SnapshotOptions.Create(o =>
            {
                o.AddDirective(line => line.Replace(" ", string.Empty, StringComparison.OrdinalIgnoreCase));
            });

            sn.MatchSnapshot(options);
        }
        public void DefaultSnapshotOptions_Comparer()
        {
            SnapshotOptions.Setup(o =>
            {
                o.SetComparer((newline, savedline) => newline.Value.Replace(" ", string.Empty, StringComparison.OrdinalIgnoreCase).Equals(savedline.Value.Replace(" ", string.Empty, StringComparison.OrdinalIgnoreCase)));
            });

            var options = SnapshotOptions.Create(o =>
            {
                o.UpdateSavedSnapshot();
            });


            var sn = new StringBuilder()
                     .AppendLine("Line 1")
                     .AppendLine("Line 2")
                     .AppendLine("Line 3")
                     .ToString();

            sn.MatchSnapshot(options);


            sn = new StringBuilder()
                 .AppendLine("Line    1")
                 .AppendLine("   Line 2")
                 .AppendLine("  Line     3")
                 .ToString();

            sn.MatchSnapshot();

            // reset
            SnapshotOptions.Setup(o => { });
        }
Ejemplo n.º 7
0
        public void TypeMapper_Options_ObjectMapper_RootObject()
        {
            var options = SnapshotOptions.Create(o =>
            {
                o.AddMapper <CustomData>((ctx, itm) =>
                {
                    //only add Value and Dbl but ignore Id
                    ctx.Map(new
                    {
                        InnerValue = itm.Inner.Value,
                        OuterValue = itm.Value
                    });
                });
            });

            var snapshot = new CustomData
            {
                Id    = 1,
                Dbl   = 2.2,
                Value = "value",
                Inner = new InnerData
                {
                    Id    = 2,
                    Value = "inner"
                }
            }.Tokenize(options);

            var expected = new
            {
                OuterValue = "value",
                InnerValue = "inner"
            }.Tokenize();

            snapshot.ToString().Should().Be(expected.ToString());
        }
Ejemplo n.º 8
0
 public MapperContext(ITypeMapper mapper, Snapshot snapshot, SnapshotOptions options, int indentation)
 {
     Mapper      = mapper;
     Indentation = indentation;
     Options     = options;
     Snapshot    = snapshot;
 }
        public void SnapshotOptions_Merge_Comparer_Default()
        {
            var options = SnapshotOptions.Create(o => { });

            options.MergeDefault();

            options.Comparer.Should().BeSameAs(SnapshotOptions.Default.Comparer);
        }
Ejemplo n.º 10
0
        public void Mapper_MockGuid_SnapshotOptions_Tokenize_Nullable()
        {
            Guid?guid = Guid.NewGuid();

            var options = SnapshotOptions.Create(o => o.MockGuids());

            new { Value = guid }.Tokenize(options).ToString().Should().Be("Value: 00000000-0000-0000-0000-000000000000");
        }
Ejemplo n.º 11
0
        public void Mapper_MockDateTime_SnapshotOptions_Tokenize_Nullable()
        {
            DateTime?date = new DateTime(2000, 1, 1, 1, 1, 1, 1);

            var options = SnapshotOptions.Create(o => o.MockDateTimes());

            new { Value = date }.Tokenize(options).ToString().Should().Be("Value: 0000-00-00T00:00:00.0000");
        }
        public void SnapshotOptions_Merge_AddTypeMappers()
        {
            var options = SnapshotOptions.Create(o => { o.AddMapper <CustomType>((c, i) => { }); });

            options.MergeDefault();

            options.TypeMappers.Count().Should().Be(1);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// map an object to a snapshot
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="item"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        public Snapshot Map <T>(T item, SnapshotOptions options)
        {
            var snapshot = new Snapshot();
            var ctx      = new MapperContext(this, snapshot, options, 0);

            Map(ctx, item);

            return(snapshot);
        }
Ejemplo n.º 14
0
        public void TypeMapper_Options_OverrideMapper()
        {
            var options = SnapshotOptions.Create(o =>
            {
                o.AddMapper <InnerData>((ctx, itm) =>
                {
                    // only mapp the id
                    ctx.AddLine("Value", itm.Value);
                });

                o.AddMapper <CustomData>((ctx, itm) =>
                {
                    // overrid to only add Value and Dbl but ignore Id
                    o.AddMapper <InnerData>((ctx2, itm2) =>
                    {
                        // only mapp the id
                        ctx2.AddLine("Id", itm2.Id);
                    });

                    // only add Value and Dbl but ignore Id
                    ctx.Map("Inner", itm.Inner);
                    ctx.AddLine("OuterValue", itm.Value);
                });
            });

            var snapshot = new
            {
                Item = "item",
                Data = new CustomData
                {
                    Id    = 1,
                    Dbl   = 2.2,
                    Value = "value",
                    Inner = new InnerData
                    {
                        Id    = 2,
                        Value = "inner"
                    }
                }
            }.Tokenize(options);

            var expected = new
            {
                Data = new
                {
                    OuterValue = "value",
                    Inner      = new
                    {
                        Id = 2
                    }
                },
                Item = "item",
            }.Tokenize();

            snapshot.ToString().Should().Be(expected.ToString());
        }
Ejemplo n.º 15
0
        public void SnapshotOptions_IsValueType_Custom()
        {
            var options = SnapshotOptions.Create(o =>
            {
                o.EvaluateValueType((type, obj) => type.IsValueType && type != typeof(string));
            });

            options.IsValueType(typeof(int), 1).Should().BeTrue();
            options.IsValueType(typeof(string), "1").Should().BeFalse();
        }
Ejemplo n.º 16
0
        public void Directive_Extension_ReplaceGuid()
        {
            var options = SnapshotOptions.Create(o =>
            {
                // ignore Guids when comparing
                o.AddDirective(s => s.ReplaceGuid());
            });

            new { Value = Guid.NewGuid() }.MatchSnapshot(options);
        }
Ejemplo n.º 17
0
        public void Snapshot_Options_UseBasicFormatters_Formatter_SimpleString()
        {
            // reset
            SnapshotOptions.Setup(o =>
            {
                o.UseBasicFormatters();
            });

            SnapshotOptions.Default.Formatters[typeof(string)].Should().BeOfType <SimpleStringFormatter>();
        }
Ejemplo n.º 18
0
        public void Snapshot_Options_UseBasicFormatters_Formatter_Type()
        {
            // reset
            SnapshotOptions.Setup(o =>
            {
                o.UseBasicFormatters();
            });

            SnapshotOptions.Default.Formatters[typeof(Type)].Should().BeOfType <TypeFormatter>();
        }
        public void SnapshotOptions_Merge_UpdateSnapshot_Default()
        {
            SnapshotOptions.Default.UpdateSavedSnapshot();

            var options = SnapshotOptions.Create(o => { });

            options.MergeDefault();

            options.UpdateSnapshot.Should().Be(SnapshotOptions.Default.UpdateSnapshot).And.BeTrue();
        }
Ejemplo n.º 20
0
        public void Snapshot_Options_UseBasicFormatters_CustomOptions()
        {
            // reset
            var options = SnapshotOptions.Create(o =>
            {
                o.UseBasicFormatters();
            });

            options.Formatters.Count().Should().Be(2);
        }
Ejemplo n.º 21
0
        public void Snapshot_Options_DefaultOptions_Parser_AfterReset()
        {
            // ignore Guids when comparing
            var parser = SnapshotOptions.Default.Parser;

            // reset
            SnapshotOptions.Setup(o => { });

            Assert.AreNotSame(SnapshotOptions.Default.Parser, parser);
        }
Ejemplo n.º 22
0
        public void Snapshot_Options_UseBasicFormatters_Count()
        {
            // reset
            SnapshotOptions.Setup(o =>
            {
                o.UseBasicFormatters();
            });

            SnapshotOptions.Default.Formatters.Count().Should().Be(2);
        }
Ejemplo n.º 23
0
        public void Options_Directives_ReplaceDateTime()
        {
            var options = SnapshotOptions.Create(o =>
            {
                // ignore DateTime when comparing
                o.AddDirective(s => s.ReplaceDateTime());
            });

            new { Value = DateTime.Now }.MatchSnapshot(options);
        }
Ejemplo n.º 24
0
        public void Options_Directives_ReplaceDateTime_CustomFormat()
        {
            var options = SnapshotOptions.Create(o =>
            {
                // ignore Guids when comparing
                o.AddDirective(s => s.ReplaceDateTime("datetime replacement"));
            });

            new { Value = DateTime.Now }.MatchSnapshot(options);
        }
Ejemplo n.º 25
0
        public void Options_Directives_ReplaceGuid_CustomFormat()
        {
            var options = SnapshotOptions.Create(o =>
            {
                // ignore Guids when comparing
                o.AddDirective(s => s.ReplaceGuid("guid replacement"));
            });

            new { Value = Guid.NewGuid() }.MatchSnapshot(options);
        }
Ejemplo n.º 26
0
        public void Snapshot_Options_AddDirectives_DefaultOptions_Parser()
        {
            // ignore Guids when comparing
            SnapshotOptions.Default.Parser.AddDirective(s => s.ReplaceRegex(@"(?im)[{(]?[0-9A-Fa-f]{8}[-]?(?:[0-9A-Fa-f]{4}[-]?){3}[0-9A-Fa-f]{12}[)}]?", "00000000-0000-0000-0000-000000000000"));

            new { Value = Guid.NewGuid() }.MatchSnapshot();

            // reset
            SnapshotOptions.Setup(o => { });
        }
Ejemplo n.º 27
0
        public void Snapshot_Options_AddDirectives()
        {
            var options = SnapshotOptions.Create(o =>
            {
                // ignore Guids when comparing
                o.AddDirective(s => s.ReplaceRegex(@"(?im)[{(]?[0-9A-Fa-f]{8}[-]?(?:[0-9A-Fa-f]{4}[-]?){3}[0-9A-Fa-f]{12}[)}]?", "00000000-0000-0000-0000-000000000000"));
            });

            new { Value = Guid.NewGuid() }.MatchSnapshot(options);
        }
Ejemplo n.º 28
0
        public void Snapshot_Options_UseBasicFormatters_CustomOptions_DefaultSet()
        {
            SnapshotOptions.Setup(o =>
            {
                o.UseBasicFormatters();
            });

            var options = SnapshotOptions.Create(o => { });

            options.Formatters.Count().Should().Be(2);
        }
        public void SnapshotOptions_Merge_Comparer_Custom()
        {
            var options = SnapshotOptions.Create(o =>
            {
                o.SetComparer((l1, l2) => true);
            });

            options.MergeDefault();

            options.Comparer.Should().NotBeSameAs(SnapshotOptions.Default.Comparer);
        }
Ejemplo n.º 30
0
        public void Snapshot_Options_DefaultParserAfterMerge()
        {
            var options = new SnapshotOptions();

            // ensure parser is created
            _       = options.Parser;
            _       = SnapshotOptions.Default.Parser;
            options = options.MergeDefault();

            Assert.AreNotSame(options.Parser, SnapshotOptions.Default.Parser);
        }