public void EntryOrder()
        {
            var formatter = new RecordChangeAuditFormatter("dummyEntity", "dummyUser", null);

            formatter.AddChangedLookup("B", null, new Resource {Name="r" } );


            var field1 = new IntField().As<Field>();
            field1.Name = "C";

            formatter.AddChangedField(field1, 1, 2);

            var field2 = new IntField().As<Field>();
            field2.Name = "A";

            formatter.AddChangedField(field2, 1, 2);

            var result = formatter.ToString();


            var indexA = result.IndexOf("[A]");
            var indexB = result.IndexOf("[B]");
            var indexC = result.IndexOf("[C]");

            Assert.That(indexA, Is.LessThan(indexB));
            Assert.That(indexB, Is.LessThan(indexC));
        }
        public void GetNameString(string userName, string secondaryUser, string entityName, bool isCreate, string expected)
        {
            var formatter = new RecordChangeAuditFormatter("dummyEntity", "dummyUser", null);
            formatter.AddUserName(userName, secondaryUser);
            formatter.AddEntityName(entityName);
            formatter.IsCreate = isCreate;

            Assert.That(formatter.GetNameString(), Is.EqualTo(expected));
        }
        public void DescriptionTooLong()
        {
            var formatter = new RecordChangeAuditFormatter("dummyEntity", "dummyUser", null) { MaxDescriptionLength = 20 };

            formatter.AddChangedRelationship("Dummy", CreateDummies("r", 10), CreateDummies("a", 0), 10);
            var result = formatter.ToString();

            Assert.That(result.Length, Is.EqualTo(20));
        }
        public void Delete()
        {
            var formatter = new RecordChangeAuditFormatter("dummyEntity", "dummyUser", null);

            formatter.IsDelete = true;
            var result = formatter.ToString();

            Assert.That(result, Is.EqualTo("deleted"));
        }
        public void FromToTest(Field field, object oldValue, object newValue, string expected)
        {
            
            var formatter = new RecordChangeAuditFormatter("dummyName", "dummyId", null);

            formatter.AddChangedField(field, oldValue, newValue);
            var result = formatter.ToString();

            Assert.That(result.Trim(), Is.EqualTo(expected));
        }
        public void TestRelationship(string relName, int removed, int added, int count, string expected)
        {
            var formatter = new RecordChangeAuditFormatter("dummyEntity", "dummyUser", null) { MaxRelationshipsNamesReported = 2 };
           
            
            formatter.AddChangedRelationship(relName, CreateDummies("r", removed), CreateDummies("a", added), count);
            var result = formatter.ToString();

            Assert.That(result, Is.EqualTo(expected));
        }
        public void RemovingThenAddingSameRecordIgnored()
        {
            var formatter = new RecordChangeAuditFormatter("dummyEntity", "dummyUser", null);

            var overlapping = CreateDummies("o", 1).ToList();
            var removed = CreateDummies("r", 1).Union(overlapping);
            var added = CreateDummies("a", 1).Union(overlapping);
            formatter.AddChangedRelationship("MyRel", removed, added, 10);
            var result = formatter.ToString();

            Assert.That(result, Is.EqualTo("[MyRel] removed 'r1' added 'a1'"));
        }
        public void TestLookup(string relName, string oldResName, string newResName, string expected)
        {
            var formatter = new RecordChangeAuditFormatter("dummyEntity", "dummyUser", null);

            var oldRes = oldResName != null ? new Resource { Name = oldResName } : null;
            var newRes = newResName != null ? new Resource { Name = newResName } : null;

            formatter.AddChangedLookup(relName, oldRes, newRes);
            var result = formatter.ToString();

            Assert.That(result, Is.StringStarting(expected));
        }