/// <summary> /// Случай для обычного пакета /// </summary> private static ValidationResult IsSimpleAllowedCase(AdditionalChecks checks, AmountOfStockSubmited amountOfStockSubmited, CumYesIs cumChecks, NumberOfChecks numberOfChecks) { if (amountOfStockSubmited == AmountOfStockSubmited.VotesArentSubmited) { if (cumChecks == CumYesIs.NotChecked) { return(ValidationResult.Fullfilled); } else { return(ValidationResult.NotFullfilled(ErrorTexts.CUMULATIVE_QUESTION_MUST_HAVE_VOTES_SUBMITED_IN_CASE_OF_YES_CHECK)); } } if (checks.IsSet(AdditionalChecks.HasTrust)) { if (checks.IsSet(AdditionalChecks.HasInstructions) || checks.IsSet(AdditionalChecks.NotWholeStockWasPassed)) { //Установлен только вариант "ЗА" if (cumChecks == CumYesIs.Checked && numberOfChecks == NumberOfChecks.Single) { return(ValidationResult.Fullfilled); } else { return(ValidationResult.NotFullfilled(ErrorTexts.INCORRECT_FILLING)); } } } return(ValidationResult.Fullfilled); }
public void QCumulativeTests(bool yesCheck, int firstVote, int secondVote, int thirdVote, bool noCheck, int noVotes, bool absCheck, int absVotes, AmountOfStockSubmited expected) { var allowedVotesAmount = new FractionLong(100); var qCum = new QCumulative(1, new List <QCumCandidatePoint> { new QCumCandidatePoint(1, Fields.VotesDocField(firstVote)), new QCumCandidatePoint(2, Fields.VotesDocField(secondVote)), new QCumCandidatePoint(3, Fields.VotesDocField(thirdVote)), }, new QCumulativeAdditionalMarks( Fields.CheckBoxDocField(yesCheck), Fields.CheckBoxDocField(noCheck), Fields.VotesDocField(noVotes), Fields.CheckBoxDocField(absCheck), Fields.VotesDocField(absVotes)) ) { PositionsCount = 10 }; var result = _calculator.GetAmountOfStockSubmited(qCum, allowedVotesAmount); Assert.That(result, Is.EqualTo(expected)); }
private static ValidationResult IfYesIsCheckedVotesAreSubmited(AmountOfStockSubmited amountOfStockSubmited, CumYesIs cumYesCheck) { if (cumYesCheck == CumYesIs.Checked && amountOfStockSubmited == AmountOfStockSubmited.VotesArentSubmited) { return(ValidationResult.NotFullfilled(ErrorTexts.CUMULATIVE_QUESTION_MUST_HAVE_VOTES_SUBMITED_IN_CASE_OF_YES_CHECK)); } return(ValidationResult.Fullfilled); }
public string GetErrorTextFor(PackStatus packStatus, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks, bool trustExists) { return(GetValidationResultFor(packStatus, additionalChecks, amountOfStockSubmited, numberOfChecks, trustExists) .ErrorText); }
public bool GetIsFulfilledFor(PackStatus packStatus, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks, bool trustExists) { return(GetValidationResultFor(packStatus, additionalChecks, amountOfStockSubmited, numberOfChecks, trustExists) .IsFullfilled); }
public void BaseYesNoAbsPointTests(bool yesCheck, int yesVotes, bool noCheck, int noVotes, bool absCheck, int absVotes, AmountOfStockSubmited expected) { var allowedVotesAmount = new FractionLong(100); var baseYesNoAbstainedPoint = new BaseYesNoAbsPoint( Fields.CheckBoxDocField(yesCheck), Fields.CheckBoxDocField(noCheck), Fields.CheckBoxDocField(absCheck), Fields.VotesDocField(yesVotes), Fields.VotesDocField(noVotes), Fields.VotesDocField(absVotes)); var result = _calculator.GetAmountOfStockSubmited(baseYesNoAbstainedPoint, allowedVotesAmount); Assert.That(result, Is.EqualTo(expected)); }
/// <summary> /// —лучай дл¤ обычного пакета /// </summary> private static ValidationResult IsSimpleAllowedCase(AdditionalChecks checks, AmountOfStockSubmited amountOfStockSubmited) { if (amountOfStockSubmited == AmountOfStockSubmited.VotesArentSubmited) { return(ValidationResult.Fullfilled); } if (checks.IsSet(AdditionalChecks.HasTrust)) { if (checks.IsSet(AdditionalChecks.HasInstructions) || checks.IsSet(AdditionalChecks.NotWholeStockWasPassed)) { return(ValidationResult.NotFullfilled(ErrorTexts.CANNOT_USE_OTHER_CHECKS_WITH_HAVE_TRUST_CHECK)); } } return(ValidationResult.Fullfilled); }
private ValidationResult GetValidationResultFor(PackStatus packStatus, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks, bool trustExists) { var ammountOfStockSubmitedIsNoMorethatThereIsOnPack = AmmountOfStockSubmitedIsNoMorethatThereIsOnPack(amountOfStockSubmited); if (!ammountOfStockSubmitedIsNoMorethatThereIsOnPack.IsFullfilled) { return(ammountOfStockSubmitedIsNoMorethatThereIsOnPack); } var multipleChecksArentSelectedIfVotesArentSubmited = MultipleChecksArentSelectedIfVotesArentSubmited(amountOfStockSubmited, numberOfChecks); if (!multipleChecksArentSelectedIfVotesArentSubmited.IsFullfilled) { return(multipleChecksArentSelectedIfVotesArentSubmited); } if (IsTrustSpecialCase(packStatus, additionalChecks, amountOfStockSubmited, numberOfChecks)) { return(IsAllowedTrustSpecialCase(trustExists)); } if (packStatus == PackStatus.Simple) { return(IsSimpleAllowedCase(additionalChecks, amountOfStockSubmited)); } if (packStatus == PackStatus.Seller) { return(BuyerAndSellerAllowedCasesHelper.IsSellerAllowedCase(additionalChecks, amountOfStockSubmited)); } if (packStatus == PackStatus.Buyer) { return(BuyerAndSellerAllowedCasesHelper.IsBuyerAllowedCase(additionalChecks, amountOfStockSubmited)); } throw new NotSupportedException("“ип " + packStatus + " не поддерживаетс¤."); }
/// <summary> /// Случай для покупателя /// </summary> public static ValidationResult IsBuyerAllowedCase(AdditionalChecks checks, AmountOfStockSubmited amountOfStockSubmited) { var buyerHasTrust = checks.IsSet(AdditionalChecks.HasTrust); var buyerHasSumbitedVotes = amountOfStockSubmited != AmountOfStockSubmited.VotesArentSubmited; var buyerHasntCheckedNotWholeStockWasPassed = !checks.IsSet(AdditionalChecks.NotWholeStockWasPassed); if (!buyerHasTrust) { return(ValidationResult.NotFullfilled(ErrorTexts.BUYERS_PACK_MUST_HAVE_HAVE_TRUST_CHECK)); } if (!buyerHasSumbitedVotes) { return(ValidationResult.NotFullfilled(ErrorTexts.BUYERS_PACK_MUST_HAVE_VOTES_SUBMITED)); } if (!buyerHasntCheckedNotWholeStockWasPassed) { return(ValidationResult.NotFullfilled(ErrorTexts.BUYERS_PACK_CANNOT_HAVE_NOTWHOLESTOCKPASSED_CHECK)); } return(ValidationResult.Fullfilled); }
public void MatrixTest(Status status, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks, bool expected) { var packStatus = GetPackStatusFor(status); // Специальный случай для голосования по доверенности if (packStatus == PackStatus.Simple && additionalChecks == AdditionalChecks.HasTrust && amountOfStockSubmited == AmountOfStockSubmited.LessOrEqualThanThereIsOnPack && numberOfChecks == NumberOfChecks.Single) { HandleTrustExistanceSpecialCase(packStatus, additionalChecks, amountOfStockSubmited, numberOfChecks); return; } var chain1 = GraphProvider.GetQSimpleQSepAndHierSubQTableRuleChain(null, null, () => packStatus, () => true, () => amountOfStockSubmited, () => numberOfChecks, () => additionalChecks, () => false); var chain2 = GraphProvider.GetQSimpleQSepAndHierSubQTableRuleChain(null, null, () => packStatus, () => false, () => amountOfStockSubmited, () => numberOfChecks, () => additionalChecks, () => false); Assert.That(RuleChainFulfilledResoveHelper.RuleChainIsFulfilled(chain1), Is.EqualTo(expected)); Assert.That(RuleChainFulfilledResoveHelper.RuleChainIsFulfilled(chain2), Is.EqualTo(expected)); }
private static bool IsExceptionalCaseForSimplePack(AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks, CumYesIs cumChecks) { return(additionalChecks == AdditionalChecks.None /*&& * amountOfStockSubmited == AmountOfStockSubmited.MoreThanThereIsOnPack*/ && numberOfChecks == NumberOfChecks.Single && cumChecks == CumYesIs.NotChecked); }
/// <summary> /// Случай для продавца /// </summary> public static ValidationResult IsSellerAllowedCase(AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited) { if (additionalChecks == AdditionalChecks.NotWholeStockWasPassed && amountOfStockSubmited == AmountOfStockSubmited.VotesArentSubmited) { return(ValidationResult.NotFullfilled(ErrorTexts.SELLER_PACKET_WITH_NOT_WHOLE_STOCK_PASSED_CHECK_MUST_HAVE_VOTES_SUBMITED)); } var sellerCheckedThatHeHasTrust = additionalChecks.IsSet(AdditionalChecks.HasTrust); if (sellerCheckedThatHeHasTrust) { return(ValidationResult.NotFullfilled(ErrorTexts.SELLER_PACK_CANNOT_HAVE_HAVE_TRUST_CHECK)); } var hasInstructionsIsChecked = additionalChecks.IsSet(AdditionalChecks.HasInstructions); var notWholeStockPassedIsChecked = additionalChecks.IsSet(AdditionalChecks.NotWholeStockWasPassed); if (!hasInstructionsIsChecked && !notWholeStockPassedIsChecked) { return(ValidationResult.NotFullfilled(ErrorTexts.SELLER_PACKET_MUST_HAVE_NOTWHOLESTOCKWASPASSED_CHECK)); } return(ValidationResult.Fullfilled); }
private static ValidationResult MultipleChecksArentSelectedIfVotesArentSubmited(AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks) { if (numberOfChecks == NumberOfChecks.Multiple && amountOfStockSubmited == AmountOfStockSubmited.VotesArentSubmited) { return(ValidationResult.NotFullfilled(ErrorTexts.WITH_MULTIPLE_CHECKS_VOTES_MUST_BE_SUBMITED)); } return(ValidationResult.Fullfilled); }
private static ValidationResult AmmountOfStockSubmitedIsNoMorethatThereIsOnPack(AmountOfStockSubmited amountOfStockSubmited) { if (amountOfStockSubmited == AmountOfStockSubmited.MoreThanThereIsOnPack) { return(ValidationResult.NotFullfilled(ErrorTexts.AMOUNT_OF_STOCK_SUBMITED_IS_GREATER_THAN_THERE_IS_ON_PACK)); } return(ValidationResult.Fullfilled); }
private static void HandleTrustExistanceSpecialCase(PackStatus packStatus, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks) { var chain1 = GraphProvider.GetQSimpleQSepAndHierSubQTableRuleChain(null, null, () => packStatus, () => true, () => amountOfStockSubmited, () => numberOfChecks, () => additionalChecks, () => false ); Assert.That(RuleChainFulfilledResoveHelper.RuleChainIsFulfilled(chain1), Is.EqualTo(true)); var chain2 = GraphProvider.GetQSimpleQSepAndHierSubQTableRuleChain(null, null, () => packStatus, () => false, () => amountOfStockSubmited, () => numberOfChecks, () => additionalChecks, () => false ); Assert.That(RuleChainFulfilledResoveHelper.RuleChainIsFulfilled(chain2), Is.EqualTo(false)); }
private static bool IsTrustSpecialCase(PackStatus packStatus, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks) { //—пециальный случай дл¤ проверки наличи¤ доверенности return(packStatus == PackStatus.Simple && additionalChecks == AdditionalChecks.HasTrust && amountOfStockSubmited == AmountOfStockSubmited.LessOrEqualThanThereIsOnPack && numberOfChecks == NumberOfChecks.Single); }
private bool IsTrustSpecialCase(PackStatus packStatus, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks, CumYesIs cumChecks) { return(packStatus == PackStatus.Simple && additionalChecks == AdditionalChecks.HasTrust && amountOfStockSubmited == AmountOfStockSubmited.LessOrEqualThanThereIsOnPack && cumChecks == CumYesIs.NotChecked); }