public void グレードがいいやつはボーナスがつく() { var order = new Order ( name: OrderName.Car, 100, new[] { new OrderElement(Type.Wheel, 4), new OrderElement(Type.CarBody, 1), } ); var checker = new OrderCalculator(new[] { order }); var parts = new[] { new Part(Type.Wheel, Quality.Normal, 0), new Part(Type.Wheel, Quality.High, 0), new Part(Type.Wheel, Quality.High, 0), new Part(Type.Wheel, Quality.Normal, 0), new Part(Type.CarBody, Quality.Normal, 0), }; // Car指定 var shipment1 = new ShippingParts(parts, OrderName.Car); var result = checker.Calculate(shipment1); // 倍率で点数が上がるはず Assert.AreEqual((int)(100 * 1.2f * 1.2f), (int)result); }
public void OrderNameを指定してコンボボーナスが得られる() { var order = new Order ( name: OrderName.Car, 100, new[] { new OrderElement(Type.Wheel, 4), new OrderElement(Type.CarBody, 1), } ); var checker = new OrderCalculator(new[] { order }); var parts = new[] { new Part(Type.Wheel, Quality.Normal, 0), new Part(Type.Wheel, Quality.Normal, 0), new Part(Type.Wheel, Quality.Normal, 0), new Part(Type.Wheel, Quality.Normal, 0), new Part(Type.CarBody, Quality.Normal, 0), }; // Car指定 var shipment1 = new ShippingParts(parts, OrderName.Car); var result = checker.Calculate(shipment1); // Car指定なのでCarのコンボボーナスが得られる Assert.AreEqual(100, result); // Car指定ではない var shipment2 = new ShippingParts(parts, OrderName.Doll); var result2 = checker.Calculate(shipment2); // Car指定ではないのコンボボーナスは得られない Assert.AreEqual(0, result2); }
private void CalculateScore(ShippingParts shippingParts) { _totalScore.Value += _orderCalculator.Calculate(shippingParts); }