private TestSnTracer GetTracer()
        {
            var old = SnTrace.SnTracers.FirstOrDefault(x => x.GetType() == typeof(TestSnTracer));

            if (old != null)
            {
                SnTrace.SnTracers.Remove(old);
            }

            var tracer = new TestSnTracer();

            SnTrace.SnTracers.Add(tracer);
            return(tracer);
        }
Exemple #2
0
        public void Indexing_SimpleSerializationWhenSaveNode()
        {
            int GetCountOfTraceMessages(TestSnTracer tracer, int versionId)
            {
                var lines = tracer.Lines.ToArray();
                var msg   = $"Serialize IndexDocument. VersionId: {versionId}";

                return(lines.Count(x => x.Split('\t').Last() == msg));
            }

            Test(() =>
            {
                using (new Swindler <bool>(true,
                                           () => SnTrace.Index.Enabled,
                                           value => { SnTrace.Index.Enabled = value; }))
                {
                    var localTracer = new TestSnTracer();
                    try
                    {
                        SnTrace.SnTracers.Add(localTracer);

                        localTracer.Lines.Clear();
                        var root = CreateTestRoot();
                        // Expectation: 2 lines: start and end of a trace operation.
                        Assert.AreEqual(2, GetCountOfTraceMessages(localTracer, root.VersionId));

                        var file = new File(root)
                        {
                            Name = Guid.NewGuid().ToString()
                        };
                        file.Binary.SetStream(RepositoryTools.GetStreamFromString("fileContent"));

                        localTracer.Lines.Clear();
                        file.Save();
                        Assert.AreEqual(2, GetCountOfTraceMessages(localTracer, file.VersionId));
                    }
                    finally
                    {
                        SnTrace.SnTracers.Remove(localTracer);
                    }
                }
            });
        }