using NUnit.Framework;
using Technewlogic.ObjectLounge.Framework.Validation;
using System;
using Technewlogic.ObjectLounge.Framework.Proxy;
using System.Collections.Generic;
using Technewlogic.ObjectLounge.Framework.Transactions;
namespace Technewlogic.ObjectLounge.Test.ValidationTests
{
class DummyProxy : IProxy
{
#region IUnitOfWorkConcern Members
public Technewlogic.ObjectLounge.Framework.BaseConcerns.NavigationConcern NavigationConcern
{
get { throw new NotImplementedException(); }
}
public Technewlogic.ObjectLounge.Framework.BaseConcerns.KeyManagementConcern KeyManagementConcern
{
get { throw new NotImplementedException(); }
}
public Technewlogic.ObjectLounge.Framework.BaseConcerns.ChangeTrackingConcern ChangeTrackingConcern
{
get { throw new NotImplementedException(); }
}
#endregion
#region IValidationConcern Members
public ValidationConcern ValidationConcern
{
get { throw new NotImplementedException(); }
}
#endregion
#region IProxy Members
public void Initialize()
{
}
#endregion
#region ITransactionCollectionHandler Members
public void ExecuteListOperation(Action del, string propertyName, object newValue, object oldValue)
{
throw new NotImplementedException();
}
public bool TryGetCommittedValue(string propertyName, out object value)
{
throw new NotImplementedException();
}
public void RegisterRollbackAction(string propertyName, Action<object> restoreValueMethod)
{
throw new NotImplementedException();
}
#endregion
}
[TestFixture]
public class ValidationTransactionServiceTest
{
[TestFixtureSetUp]
public void TestFixtureSetUp()
{
}
[SetUp]
public void SetUp()
{
}
[Test]
public void AddBrokenRules()
{
throw new NotImplementedException();
//ValidationTransactionService vs = new ValidationTransactionService();
//IProxy source1 = new DummyProxy();
//IEnumerable<BrokenRule> brokenRules1 = new List<BrokenRule>()
//{
// new BrokenRule("Rule1", "Error1"),
// new BrokenRule("Rule2", "Error2"),
// new BrokenRule("Rule3", "Error3")
//};
//IProxy source2 = new DummyProxy();
//IEnumerable<BrokenRule> brokenRules2 = new List<BrokenRule>()
//{
// new BrokenRule("Rule4", "Error4")
//};
//vs.MarkOrTrigger(source1, brokenRules1);
//vs.MarkOrTrigger(source2, brokenRules2);
//Assert.AreEqual(2, vs.InvalidObjects.Count);
//Assert.AreEqual(brokenRules1, vs.InvalidObjects[source1]);
//Assert.AreEqual(brokenRules2, vs.InvalidObjects[source2]);
}
[Test]
public void RemoveBrokenRules()
{
throw new NotImplementedException();
//ValidationTransactionService vs = new ValidationTransactionService();
//IProxy source1 = new DummyProxy();
//IEnumerable<BrokenRule> brokenRules1 = new List<BrokenRule>()
//{
// new BrokenRule("Rule1", "Error1"),
// new BrokenRule("Rule2", "Error2"),
// new BrokenRule("Rule3", "Error3")
//};
//IProxy source2 = new DummyProxy();
//IEnumerable<BrokenRule> brokenRules2 = new List<BrokenRule>()
//{
// new BrokenRule("Rule4", "Error4"),
//};
//vs.MarkOrTrigger(source1, brokenRules1);
//vs.MarkOrTrigger(source2, brokenRules2);
//vs.MarkOrTrigger(source1, new BrokenRule[] { });
//Assert.AreEqual(1, vs.InvalidObjects.Count);
//Assert.AreEqual(brokenRules2, vs.InvalidObjects[source2]);
//try
//{
// Assert.AreEqual(brokenRules1, vs.InvalidObjects[source1]);
// Assert.Fail("There should be no entry here!");
//}
//catch (KeyNotFoundException)
//{
//}
}
}
}