public void DealServiceTest_ChangeContractAndOldContractIsUsedByAnyDeal_OldContractStaysUndeleted() { //Arrange var client = new Mock <Client>(); client.Setup(x => x.Organizations).Returns(new List <ContractorOrganization> { clientOrganization }); var oldContract = new ClientContract(accountOrganization, clientOrganization, "Старый договор", "1", DateTime.Now, DateTime.Now); var newContract = new ClientContract(accountOrganization, clientOrganization, "Новый договор", "2", DateTime.Now, DateTime.Now); var deal = new Deal_Accessor("Сделка1", It.IsAny <User>()) { Client = client.Object, Contract = oldContract }; clientContractRepository.Setup(x => x.IsUsedBySingleDeal(It.IsAny <ClientContract>(), It.IsAny <Deal>())).Returns(false); //Act dealService.SetContract((Deal)deal.Target, newContract, user.Object); //Assert clientContractRepository.Verify(x => x.Delete(It.IsAny <ClientContract>()), Times.Never()); }
public void Deal_TryToSetContractWithClientOrganizationThatIsNotLinkedToClient_ThrowsException() { try { var client = new Mock <Client>(); client.Setup(x => x.Organizations).Returns(new List <ContractorOrganization> { clientOrganization }); var deal = new Deal_Accessor("Тестовая сделка", user) { Client = client.Object }; var newClientOrganization = new Mock <ClientOrganization>(); var newContract = new Mock <ClientContract>(); newContract.Setup(x => x.ContractorOrganization).Returns(newClientOrganization.Object); deal.Contract = newContract.Object; Assert.Fail("Исключение не вызвано."); } catch (Exception ex) { Assert.AreEqual("Выбранная организация клиента больше не принадлежит данному клиенту. Возможно, она была удалена.", ex.Message); } }
public void Deal_SetContractToNull_Ok() { var deal = new Deal_Accessor(); deal.Contract = null; Assert.IsNull(deal.Contract); }
public void Deal_Payment_PreviousStage_Must_Work_From_Stage0() { var deal = new Deal_Accessor("Тестовая сделка", user); deal.PerformStageChanging(DealStage.DecisionMakerSearch); Assert.AreEqual(DealStage.DecisionMakerSearch, deal.Stage); deal.CheckPossibilityToMoveToPreviousStage(); deal.MoveToPreviousStage(); // Из-за отсутствия порядкового номера этапа время будет одинаковым, и метод перехода сработает неверно. // Из пройденных этапов будет выбран не последний, а неопределенный. }
public void Deal_ChangeContractToNull_Ok() { var clientContract = new Mock <ClientContract>(); var deal = new Deal_Accessor() { contract = clientContract.Object }; deal.Contract = null; Assert.IsNull(deal.Contract); }
public void Deal_Payment_PreviousStage_Must_Work_From_Stage2() { var deal = new Deal_Accessor("Тестовая сделка", user); deal.stageHistory.Clear(); deal.PerformStageChanging(DealStage.ClientInvestigation); deal.PerformStageChanging(DealStage.CommercialProposalPreparation); deal.CheckPossibilityToMoveToPreviousStage(); deal.MoveToPreviousStage(); // Из-за отсутствия порядкового номера этапа время будет одинаковым, и метод перехода сработает неверно. // Из пройденных этапов будет выбран не последний, а неопределенный. }
public void Deal_Payment_NextStage_Must_Work_From_Stage6() { var deal = new Deal_Accessor("Тестовая сделка", user); deal.Stage = DealStage.ContractClosing; deal.CheckPossibilityToMoveToNextStage(); deal.MoveToNextStage(); Assert.AreEqual(DealStage.SuccessfullyClosed, deal.Stage); Assert.IsFalse(deal.IsActive); Assert.IsTrue(deal.IsClosed); }
public void Deal_Payment_NextStage_Must_Work_From_Stage2() { var deal = new Deal_Accessor("Тестовая сделка", user); deal.Stage = DealStage.CommercialProposalPreparation; deal.CheckPossibilityToMoveToNextStage(); deal.MoveToNextStage(); Assert.AreEqual(DealStage.Negotiations, deal.Stage); Assert.IsTrue(deal.IsActive); Assert.IsFalse(deal.IsClosed); }
public void Deal_Payment_NextStage_Must_Work_From_Stage4_With_Contract() { var deal = new Deal_Accessor("Тестовая сделка", user); deal.Stage = DealStage.ContractSigning; deal.Contract = contract; Assert.IsNotNull(deal.Contract); deal.CheckPossibilityToMoveToNextStage(); deal.MoveToNextStage(); Assert.AreEqual(DealStage.ContractExecution, deal.Stage); Assert.IsTrue(deal.IsActive); Assert.IsFalse(deal.IsClosed); }
public void Deal_Payment_NextStage_Must_Work_From_Stage1() { var deal = new Deal_Accessor("Тестовая сделка", user); Assert.AreEqual(DealStage.ClientInvestigation, deal.Stage); Assert.AreEqual(1, deal.StageHistory.Count()); Assert.IsTrue(deal.IsActive); Assert.IsFalse(deal.IsClosed); deal.CheckPossibilityToMoveToNextStage(); deal.MoveToNextStage(); Assert.AreEqual(DealStage.CommercialProposalPreparation, deal.Stage); Assert.AreEqual(2, deal.StageHistory.Count()); Assert.IsTrue(deal.IsActive); Assert.IsFalse(deal.IsClosed); }
public void Deal_Payment_PreviousStage_Must_Not_Work_From_Stage1() { var deal = new Deal_Accessor("Тестовая сделка", user); deal.Stage = DealStage.ClientInvestigation; Assert.IsTrue(deal.IsActive); Assert.IsFalse(deal.IsClosed); try { deal.CheckPossibilityToMoveToPreviousStage(); Assert.Fail("Исключение не вызвано."); } catch (Exception ex) { Assert.AreEqual("Этап сделки «Исследование клиента» не имеет предыдущего этапа.", ex.Message); } }
public void Deal_Payment_NextStage_Must_Not_Work_From_Stage0() { var deal = new Deal_Accessor("Тестовая сделка", user); deal.Stage = DealStage.DecisionMakerSearch; Assert.IsTrue(deal.IsActive); Assert.IsFalse(deal.IsClosed); try { deal.CheckPossibilityToMoveToNextStage(); Assert.Fail("Исключение не вызвано."); } catch (Exception ex) { Assert.AreEqual("Этап сделки «Поиск принимающего решения» не имеет следующего этапа.", ex.Message); } }
public void Deal_Payment_NextStage_Must_Not_Work_From_Stage7_3() { var deal = new Deal_Accessor("Тестовая сделка", user); deal.PerformStageChanging(DealStage.DealRejection); Assert.IsFalse(deal.IsActive); Assert.IsTrue(deal.IsClosed); try { deal.CheckPossibilityToMoveToNextStage(); Assert.Fail("Исключение не вызвано."); } catch (Exception ex) { Assert.AreEqual("Этап сделки «Отказ» не имеет следующего этапа.", ex.Message); } }
public void Deal_Payment_NextStage_Must_Not_Work_From_Stage4_Without_Contract() { var deal = new Deal_Accessor("Тестовая сделка", user); deal.Stage = DealStage.ContractSigning; Assert.IsTrue(deal.IsActive); Assert.IsFalse(deal.IsClosed); Assert.IsNull(deal.Contract); try { deal.CheckPossibilityToMoveToNextStage(); Assert.Fail("Исключение не вызвано."); } catch (Exception ex) { Assert.AreEqual("Невозможно перевести сделку на этап «Исполнение договора», так как по ней отсутствует договор.", ex.Message); } }
public void Deal_SetContract_Ok() { var client = new Mock <Client>(); client.Setup(x => x.Organizations).Returns(new List <ContractorOrganization> { clientOrganization }); var deal = new Deal_Accessor("Тестовая сделка", user) { Client = client.Object }; var newContract = new Mock <ClientContract>(); newContract.Setup(x => x.ContractorOrganization).Returns(clientOrganization); deal.Contract = newContract.Object; Assert.AreEqual(newContract.Object, deal.Contract); }
public void DealServiceTest_SetContract_Ok() { //Arrange var client = new Mock <Client>(); client.Setup(x => x.Organizations).Returns(new List <ContractorOrganization> { clientOrganization }); var deal = new Deal_Accessor("Сделка1", It.IsAny <User>()) { Client = client.Object }; var contract = new ClientContract(accountOrganization, clientOrganization, "Тестовый договор", "1", DateTime.Now, DateTime.Now); //Act dealService.SetContract((Deal)deal.Target, contract, user.Object); //Assert Assert.AreEqual(contract, deal.Contract); }