public void Should_reject_transition_for_any_inconsistent_entities() { var mobStator = GetMobStatorWithFiveCorrectEntities(); var user = new User { Status = UserStatus.Active }; var subscription = new UserSubscription { Status = SubscriptionStatus.Active }; var space = new PersonalSpace { Status = PersonalSpaceStatus.Granted }; var account = new Account { Status = AccountStatus.Blocked }; var account2 = new Account { Status = AccountStatus.Existed }; var @event = new UserBlockedEvent(); Assert.Throws <StatorConfigurationException>(() => mobStator.Go(@event, user, subscription, account, space, account2)); Assert.Throws <StatorConfigurationException>(() => mobStator.Go(@event, user)); Assert.Equal(UserStatus.Active, user.Status); Assert.Equal(SubscriptionStatus.Active, subscription.Status); Assert.Equal(PersonalSpaceStatus.Granted, space.Status); Assert.Equal(AccountStatus.Blocked, account.Status); Assert.Equal(AccountStatus.Existed, account2.Status); }
public void Should_do_rollback_for_5_entities() { IMobStator mobStator = GetBrokenMobStatorWithFiveEntities(true); var user = new User { Status = UserStatus.Striked }; var subscription = new UserSubscription { Status = SubscriptionStatus.Active }; var space = new PersonalSpace { Status = PersonalSpaceStatus.Granted }; var ranking = new Ranking { Status = RankingStatus.Tracked }; var account = new Account { Status = AccountStatus.Blocked }; var @event = new UserBlockedEvent(); Assert.Throws <Exception>(() => mobStator.Go(@event, user, subscription, account, space, ranking)); Assert.Equal(UserStatus.Striked, user.Status); Assert.Equal(SubscriptionStatus.Active, subscription.Status); Assert.Equal(PersonalSpaceStatus.Granted, space.Status); Assert.Equal(RankingStatus.Tracked, ranking.Status); Assert.Equal(AccountStatus.Blocked, account.Status); }
public void Should_allow_valid_transition_for_any_entities() { IMobStator mobStator = GetMobStatorWithFiveCorrectEntities(); var user = new User { Status = UserStatus.Striked }; var subscription = new UserSubscription { Status = SubscriptionStatus.Active }; var space = new PersonalSpace { Status = PersonalSpaceStatus.Granted }; var ranking = new Ranking { Status = RankingStatus.Tracked }; var account = new Account { Status = AccountStatus.Blocked }; var @event = new UserBlockedEvent(); var result = mobStator.Go(@event, user, subscription, account, space, ranking); Assert.Throws <StatorConfigurationException>(() => mobStator.Go(@event, user, space)); Assert.Equal(UserStatus.Deleted, user.Status); Assert.Equal(SubscriptionStatus.Closed, subscription.Status); Assert.Equal(PersonalSpaceStatus.Blocked, space.Status); Assert.Equal(RankingStatus.Untracked, ranking.Status); Assert.Equal(AccountStatus.Deleted, account.Status); Assert.True(result.Success); }
// Start is called before the first frame update void Start() { rb = this.gameObject.GetComponent <Rigidbody2D>(); decisionSystem = this.gameObject.GetComponent <BehaviourDecisionSystem>(); pSpace = this.gameObject.GetComponentInChildren <PersonalSpace>(); }