public void Test_GetBullet() { var model = new MockRoyalGameModel(); var player = new MockPlayer() { Model = model }; var weapon = new Weapon(model, TypesGameObject.Weapon, TypesBehaveObjects.Active, TypesWeapon.Gun); (weapon as Weapon).Owner = player; Magazin magazin = new Magazin(weapon, TypesWeapon.Gun, 50, 300, 8); magazin.Setup(); //делаем 8 выстрелов for (int i = 0; i < 8; i++) { Assert.IsNotNull(magazin.GetBullet()); Assert.IsNull(magazin.GetBullet()); magazin.Parent.Update(new TimeQuantPassed(51)); } //перезаряжаем Assert.IsNull(magazin.GetBullet()); magazin.Parent.Update(new TimeQuantPassed(301)); Assert.IsNotNull(magazin.GetBullet()); }
public void Test_ChangeLocation() { var model = new MockRoyalGameModel(); GameObject zone = new GameObject(model, TypesGameObject.DeathZone, TypesBehaveObjects.Passive); BodyZone bodyZone = new BodyZone(zone, 500); zone.Components.Add(bodyZone); zone.Setup(); PointF startLocation = bodyZone.Location; float radius = bodyZone.Radius; zone.Update(new TimeQuantPassed(30001)); Assert.AreEqual(model.outgoingMessages.Count, 2); Assert.AreNotEqual(startLocation, bodyZone.Location); Assert.AreEqual(250, bodyZone.Radius); startLocation = bodyZone.Location; radius = bodyZone.Radius; zone.Update(new TimeQuantPassed(30001)); Assert.AreEqual(model.outgoingMessages.Count, 4); Assert.AreNotEqual(startLocation, bodyZone.Location); Assert.AreEqual(radius * 0.6f, bodyZone.Radius); }
public void Test_Handler_GotDamage_100HP() { //Arrange (подготовка) int expectedHP = 0; int DamageHP = 100; MockRoyalGameModel model = new MockRoyalGameModel(); var player = new MockPlayer() { Model = model }; Healthy healthy = new Healthy(player); healthy.Setup(); //Act (выполнение) player.Update_GotDamage(new GotDamage(player.ID, DamageHP)); IMessage msg = model.outgoingMessages.Dequeue(); //Assert (проверка) Assert.IsTrue(player.Destroyed); Assert.IsTrue((msg as ChangedValueHP).HP == expectedHP); Assert.AreEqual(expectedHP, healthy.HP); Assert.AreEqual(0, model.outgoingMessages.Count); }
public void ExplosionTest() { var model = new MockRoyalGameModel(); var obj = new GameObject(model, TypesGameObject.Grenade, TypesBehaveObjects.Active); var explosion = new Explosion(obj, new GrenadeBullet()); explosion.Setup(); }
public void Test_UpdateComponent_MakeReload() { TypesWeapon typesWeapon = TypesWeapon.Gun; int bullet_In_Magazine = 8; int duration_Magazine = 300; int duration_betweenShots = 50; var model = new MockRoyalGameModel(); var player = new MockPlayer() { Model = model }; var weapon = new Weapon(model, TypesGameObject.Weapon, TypesBehaveObjects.Active, TypesWeapon.Gun); weapon.Owner = player; Magazin magazin = new Magazin(weapon, typesWeapon, duration_betweenShots, duration_Magazine, bullet_In_Magazine); weapon.Components.Add(magazin); weapon.Setup(); Assert.IsNotNull(magazin.GetBullet()); player.Update_MakeReloadWeapon(new MakeReloadWeapon(weapon.ID)); // игров собирается выполнить перезарядку Assert.IsNull(magazin.GetBullet()); weapon.Update(new TimeQuantPassed(duration_Magazine - 1)); Assert.IsNull(magazin.GetBullet()); weapon.Update(new TimeQuantPassed(1)); Assert.IsNotNull(magazin.GetBullet()); var outMgs = model.outgoingMessages; Assert.IsTrue(outMgs.Dequeue().Count == 7); var msg_startReload = outMgs.Dequeue(); var msg_ChangeBullet_1 = outMgs.Dequeue(); var mgs_endReload = outMgs.Dequeue(); var msg_ChangeBullet_2 = outMgs.Dequeue(); Assert.IsTrue(msg_startReload.StartOrEnd == true); Assert.IsTrue(msg_ChangeBullet_1.Count == 8); Assert.IsTrue(mgs_endReload.StartOrEnd == false); Assert.IsTrue(msg_ChangeBullet_2.Count == 7); }
public void Test_SendMessage() { var model = new MockRoyalGameModel(); GameObject zone = new GameObject(model, TypesGameObject.DeathZone, TypesBehaveObjects.Passive); BodyZone bodyZone = new BodyZone(zone, 400); zone.Components.Add(bodyZone); zone.Setup(); //model.AddOrUpdateGameObject(zone); PointF startLocation = bodyZone.Location; float radius = bodyZone.Radius; zone.Update(new TimeQuantPassed(100)); Assert.AreEqual(1, model.outgoingMessages.Count); Assert.AreEqual(startLocation, bodyZone.Location); Assert.AreEqual(radius, bodyZone.Radius); }