public void Commit_TwoStateCombinations() { AccessControlTestHelper testHelper = new AccessControlTestHelper(); using (testHelper.Transaction.EnterNonDiscardingScope()) { SecurableClassDefinition orderClass = testHelper.CreateOrderClassDefinition(); StatePropertyDefinition paymentProperty = testHelper.CreatePaymentStateProperty(orderClass); testHelper.CreateStateCombination(orderClass, paymentProperty[EnumWrapper.Get(PaymentState.Paid).Name]); testHelper.CreateStateCombination(orderClass, paymentProperty[EnumWrapper.Get(PaymentState.Paid).Name]); testHelper.CreateStateCombination(orderClass, paymentProperty[EnumWrapper.Get(PaymentState.None).Name]); testHelper.Transaction.Commit(); } }
public void ValidateUniqueStateCombinations_DoubleStateCombinationAndObjectIsDeleted() { AccessControlTestHelper testHelper = new AccessControlTestHelper(); using (testHelper.Transaction.EnterNonDiscardingScope()) { SecurableClassDefinition orderClass = testHelper.CreateOrderClassDefinition(); List <StateCombination> stateCombinations = testHelper.CreateOrderStateAndPaymentStateCombinations(orderClass); var states = stateCombinations[0].GetStates(); StatePropertyDefinition orderStateProperty = states[0].StateProperty; StatePropertyDefinition paymentProperty = states[1].StateProperty; using (ClientTransaction.Current.CreateSubTransaction().EnterDiscardingScope()) { testHelper.CreateStateCombination( orderClass, ClientTransaction.Current, orderStateProperty[EnumWrapper.Get(OrderState.Received).Name], paymentProperty[EnumWrapper.Get(PaymentState.Paid).Name]); Assert.That(orderClass.StateCombinations, Is.Not.Empty); orderClass.Delete(); SecurableClassValidationResult result = new SecurableClassValidationResult(); orderClass.ValidateUniqueStateCombinations(result); Assert.That(result.IsValid, Is.True); Assert.That(orderClass.State, Is.EqualTo(StateType.Deleted)); } } }
public void ValidateUniqueStateCombinations_TwoEmptyStateCombinations() { AccessControlTestHelper testHelper = new AccessControlTestHelper(); using (testHelper.Transaction.EnterNonDiscardingScope()) { SecurableClassDefinition orderClass = testHelper.CreateOrderClassDefinition(); StateCombination statelessCombination1 = testHelper.CreateStateCombination(orderClass); StateCombination statelessCombination2 = testHelper.CreateStateCombination(orderClass); SecurableClassValidationResult result = new SecurableClassValidationResult(); orderClass.ValidateUniqueStateCombinations(result); Assert.That(result.IsValid, Is.False); Assert.That(result.DuplicateStateCombinations, Has.Member(statelessCombination1)); Assert.That(result.DuplicateStateCombinations, Has.Member(statelessCombination2)); } }
public void ValidateUniqueStateCombinations_TwoStateCombinations() { AccessControlTestHelper testHelper = new AccessControlTestHelper(); using (testHelper.Transaction.EnterNonDiscardingScope()) { SecurableClassDefinition orderClass = testHelper.CreateOrderClassDefinition(); StatePropertyDefinition paymentProperty = testHelper.CreatePaymentStateProperty(orderClass); StateCombination paidCombination1 = testHelper.CreateStateCombination(orderClass, paymentProperty[EnumWrapper.Get(PaymentState.Paid).Name]); StateCombination paidCombination2 = testHelper.CreateStateCombination(orderClass, paymentProperty[EnumWrapper.Get(PaymentState.Paid).Name]); testHelper.CreateStateCombination(orderClass, paymentProperty[EnumWrapper.Get(PaymentState.None).Name]); SecurableClassValidationResult result = new SecurableClassValidationResult(); orderClass.ValidateUniqueStateCombinations(result); Assert.That(result.IsValid, Is.False); Assert.That(result.DuplicateStateCombinations.Count, Is.EqualTo(2)); Assert.That(result.DuplicateStateCombinations, Has.Member(paidCombination1)); Assert.That(result.DuplicateStateCombinations, Has.Member(paidCombination2)); } }
public void DuplicateStateCombinations_TwoInvalidStateCombinations() { AccessControlTestHelper testHelper = new AccessControlTestHelper(); using (testHelper.Transaction.EnterNonDiscardingScope()) { SecurableClassDefinition orderClass = testHelper.CreateOrderClassDefinition(); StatePropertyDefinition paymentProperty = testHelper.CreatePaymentStateProperty(orderClass); StateCombination statelessCombination = testHelper.CreateStateCombination(orderClass); StateCombination paidStateCombination = testHelper.CreateStateCombination( orderClass, paymentProperty[EnumWrapper.Get(PaymentState.Paid).Name]); SecurableClassValidationResult result = new SecurableClassValidationResult(); result.AddDuplicateStateCombination(statelessCombination); result.AddDuplicateStateCombination(paidStateCombination); Assert.That(result.DuplicateStateCombinations.Count, Is.EqualTo(2)); Assert.That(result.DuplicateStateCombinations, Has.Member(statelessCombination)); Assert.That(result.DuplicateStateCombinations, Has.Member(paidStateCombination)); } }
public void GetStateCombinations_TwoCombinations() { AccessControlTestHelper testHelper = new AccessControlTestHelper(); using (testHelper.Transaction.EnterNonDiscardingScope()) { SecurableClassDefinition orderClass = testHelper.CreateOrderClassDefinition(); StateCombination stateCombination = testHelper.CreateStateCombination(orderClass); List <StateCombination> stateCombinations = testHelper.CreateOrderStateAndPaymentStateCombinations(orderClass); Assert.That(orderClass.StateCombinations, Is.EqualTo(ArrayUtility.Combine(stateCombination, stateCombinations.ToArray()))); } }
public void Commit_EmptyStateCombinationInClassWithStateProperties() { AccessControlTestHelper testHelper = new AccessControlTestHelper(); using (testHelper.Transaction.EnterNonDiscardingScope()) { SecurableClassDefinition orderClass = testHelper.CreateOrderClassDefinition(); testHelper.CreateOrderStateAndPaymentStateCombinations(orderClass); testHelper.CreateStateCombination(orderClass); testHelper.Transaction.Commit(); } }
public void IsValid_DuplicateStateCombination() { AccessControlTestHelper testHelper = new AccessControlTestHelper(); using (testHelper.Transaction.EnterNonDiscardingScope()) { SecurableClassDefinition orderClass = testHelper.CreateOrderClassDefinition(); StateCombination stateCombination = testHelper.CreateStateCombination(orderClass); SecurableClassValidationResult result = new SecurableClassValidationResult(); result.AddDuplicateStateCombination(stateCombination); Assert.That(result.IsValid, Is.False); } }
public void DuplicateStateCombinations_OneInvalidStateCombination() { AccessControlTestHelper testHelper = new AccessControlTestHelper(); using (testHelper.Transaction.EnterNonDiscardingScope()) { SecurableClassDefinition orderClass = testHelper.CreateOrderClassDefinition(); StateCombination stateCombination = testHelper.CreateStateCombination(orderClass); SecurableClassValidationResult result = new SecurableClassValidationResult(); result.AddDuplicateStateCombination(stateCombination); Assert.That(result.DuplicateStateCombinations.Count, Is.EqualTo(1)); Assert.That(result.DuplicateStateCombinations, Has.Member(stateCombination)); } }
public void ValidateStateCombinationsAgainstStateProperties_EmptyStateCombinationInClassWithStateProperties() { AccessControlTestHelper testHelper = new AccessControlTestHelper(); using (testHelper.Transaction.EnterNonDiscardingScope()) { SecurableClassDefinition orderClass = testHelper.CreateOrderClassDefinition(); testHelper.CreateOrderStateAndPaymentStateCombinations(orderClass); StateCombination statelessCombination = testHelper.CreateStateCombination(orderClass); SecurableClassValidationResult result = new SecurableClassValidationResult(); orderClass.ValidateStateCombinationsAgainstStateProperties(result); Assert.That(result.IsValid, Is.False); Assert.That(result.InvalidStateCombinations, Is.EquivalentTo(new[] { statelessCombination })); } }
public void Validate_DoubleStateCombination() { AccessControlTestHelper testHelper = new AccessControlTestHelper(); using (testHelper.Transaction.EnterNonDiscardingScope()) { SecurableClassDefinition orderClass = testHelper.CreateOrderClassDefinition(); List <StateCombination> stateCombinations = testHelper.CreateOrderStateAndPaymentStateCombinations(orderClass); var states = stateCombinations[0].GetStates(); StatePropertyDefinition orderStateProperty = states[0].StateProperty; StatePropertyDefinition paymentProperty = states[1].StateProperty; testHelper.CreateStateCombination( orderClass, orderStateProperty[EnumWrapper.Get(OrderState.Received).Name], paymentProperty[EnumWrapper.Get(PaymentState.Paid).Name]); SecurableClassValidationResult result = orderClass.Validate(); Assert.That(result.IsValid, Is.False); } }