예제 #1
0
        public bool KillMob()
        {
            var location = _eyes.CheckForMob();

            if (location == 0)
            {
                return(false);
            }

            _legs.MoveTo(location);

            var damageList = new List <int>();

            for (var i = 0; i < 3; i++)
            {
                damageList.Add(_weapon.Strike());
            }

            _cellphone.ReportDamage(damageList.ToArray());

            var mobStatus = _eyes.CheckMobStatus();

            _cellphone.ReportResult(new Report
            {
                IsSuccess = mobStatus
            });

            return(true);

            //_weapon.Ext(2);
            //WeaponExtensions.Ext(_weapon, 2);
        }
예제 #2
0
        public void MobWasFound_MobWasStriked(int mobLocation)
        {
            _mobLocation = mobLocation;

            var result = CreateBot().KillMob();

            Assert.That(result, Is.True);

            A.CallTo(() => _eyes.CheckForMob()).MustHaveHappenedOnceExactly()
            .Then(A.CallTo(() => _legs.MoveTo(mobLocation)).MustHaveHappenedOnceExactly())
            .Then(A.CallTo(() => _weapon.Strike()).MustHaveHappened(Repeated.Exactly.Times(3)))
            .Then(A.CallTo(() => _cellphone.ReportDamage(A <int[]> .That.IsSameSequenceAs(new[] { 1, 1, 1 }))).MustHaveHappenedOnceExactly())
            .Then(A.CallTo(() => _eyes.CheckMobStatus()).MustHaveHappenedOnceExactly())
            .Then(A.CallTo(() => _cellphone.ReportResult(A <Report> .Ignored)).MustHaveHappenedOnceExactly());

            Assert.That(_reports.Count, Is.EqualTo(1));
            Assert.That(_reports[0].IsSuccess, Is.True);
        }
예제 #3
0
        public void SetUp()
        {
            _weapon               = A.Fake <IWeapon>();
            _legs                 = A.Fake <ILegs>();
            _eyes                 = A.Fake <IEyes>();
            _cellphone            = A.Fake <ICellphone>();
            _checkMobStatusResult = true;

            _mobLocation = 0;
            _reports     = new List <Report>();
            A.CallTo(() => _eyes.CheckForMob()).ReturnsLazily(() => _mobLocation);
            A.CallTo(() => _weapon.Strike()).Returns(1);
            A.CallTo(() => _eyes.CheckMobStatus()).ReturnsLazily(() => _checkMobStatusResult);
            A.CallTo(() => _cellphone.ReportResult(A <Report> .Ignored))
            .Invokes((Report report) =>
            {
                _reports.Add(report);
            });
        }