public void Test_Not_Find_Comparer()
        {
            using (var comparerRepository = new ComparerRepositoryFake())
            {
                var comparer = comparerRepository.Find(-9999);

                Assert.Null(comparer);
            }
        }
        public void Test_Find_Comparer()
        {
            using (var comparerRepository = new ComparerRepositoryFake())
            {
                var comparer = comparerRepository.Find(1);

                Assert.NotNull(comparer);
                Assert.Equal(comparer.Left, File.ReadAllText(@"..\..\..\..\files\SameSize1.txt"));
                Assert.Equal(comparer.Right, File.ReadAllText(@"..\..\..\..\files\SameSize2.txt"));
            }
        }
Example #3
0
        public string Get(int id)
        {
            using (var comparerRepository = new ComparerRepositoryFake())
            {
                var comparer = comparerRepository.Find(id);

                if (comparer is null)
                {
                    throw new ArgumentNullException("Content not found");
                }

                if (comparer.Left.Equals(comparer.Right))
                {
                    return("Content is the same.");
                }

                if (!comparer.Left.Length.Equals(comparer.Right.Length))
                {
                    return("Content is not of the same size.");
                }

                string jsonLeft  = Encoding.UTF8.GetString(Convert.FromBase64String(comparer.Left));
                string jsonRight = Encoding.UTF8.GetString(Convert.FromBase64String(comparer.Right));

                int length = 0;
                int?offset = null;
                List <DiffEntry> diffEntries = new List <DiffEntry>();

                for (int i = 0; i < jsonLeft.Length; i++)
                {
                    if (jsonLeft[i] != jsonRight[i])
                    {
                        if (length == 0)
                        {
                            offset = i;
                        }

                        length++;
                    }
                    else if (length > 0)
                    {
                        diffEntries.Add(new DiffEntry((int)offset, length));
                        length = 0;
                        offset = 0;
                    }
                }

                return(Newtonsoft.Json.JsonConvert.SerializeObject(diffEntries));
            }
        }
        public void Test_Update_Comparer1()
        {
            using (var comparerRepository = new ComparerRepositoryFake())
            {
                var comparer = comparerRepository.Find(1);

                string content = File.ReadAllText(@"..\..\..\..\files\SameSize2.txt");
                comparer.Left = content;

                comparerRepository.Update(comparer);

                Assert.Equal(comparerRepository.Find(1).Left, content);
            }
        }
        public void Test_Add_Comparer2()
        {
            using (var comparerRepository = new ComparerRepositoryFake())
            {
                comparerRepository.Add(new Comparer()
                {
                    Id = 99,
                });

                comparerRepository.Find(99);

                Assert.NotNull(comparerRepository.Find(99));
            }
        }
        public void Test_Update_Comparer2()
        {
            using (var comparerRepository = new ComparerRepositoryFake())
            {
                var comparer1 = comparerRepository.Find(1);
                var comparer2 = comparerRepository.Find(2);

                comparer1.Right = comparer2.Right;

                comparerRepository.Update(comparer1);

                comparer1 = comparerRepository.Find(1);

                Assert.Equal(comparer1.Right, comparer2.Right);
            }
        }
        public void Test_Add_Comparer1()
        {
            using (var comparerRepository = new ComparerRepositoryFake())
            {
                comparerRepository.Add(new Comparer()
                {
                    Id    = 99,
                    Left  = File.ReadAllText(@"..\..\..\..\files\SameSize1.txt"),
                    Right = File.ReadAllText(@"..\..\..\..\files\SameSize2.txt"),
                });

                comparerRepository.Find(99);

                Assert.NotNull(comparerRepository.Find(99));
            }
        }