Package au.pavel.Tests

Source Code of au.pavel.Tests.DamageTests

package au.pavel.Tests;

import static org.junit.Assert.*;
import static org.mockito.Mockito.*;

import org.junit.Before;
import org.junit.Test;

import au.pavel.Units.IAttackObject;
import au.pavel.Units.IDestroyableObject;
import au.pavel.damage.IAttack;
import au.pavel.damageCalculator.IDamageCalculator;
import au.pavel.damageController.DamageCalculator;
import au.pavel.damageController.DamageController;

public class DamageTests {

  IAttackObject _mockAttackObject;
  IAttack _mockAttack;
  IDestroyableObject _mockDestryableObject;
  IDamageCalculator _mockCalculator;
  DamageController _controller;
  DamageCalculator _calculator;


  @Before
  public void setupTest() {

    _mockAttackObject = mock(IAttackObject.class);
    _mockAttack = mock(IAttack.class);
    _mockDestryableObject = mock(IDestroyableObject.class);
    _mockCalculator = mock(IDamageCalculator.class);
    _controller = new DamageController();
    _calculator = new DamageCalculator(_mockCalculator);
  }

  @Test
  public void calculateDamageTest() throws Exception{
    stub(_mockAttackObject.get_pureAttack()).toReturn(5f);
    stub(_mockAttack.get_damageBonus()).toReturn(1.5f);
   
    float damage = _mockAttackObject.get_pureAttack() * _mockAttack.get_damageBonus();
   
    stub(_mockCalculator.calculateDamage(_mockAttackObject, _mockAttack)).toReturn(damage);

    float value = _calculator.CalculateDamage(_mockAttackObject, _mockAttack);
   
    assertEquals(7,5d, (double)value);
  }
 
  @Test
  public void applyDamagetest() throws Exception{
    stub(_mockDestryableObject.get_totalHealth()).toReturn(10f);
    stub(_mockDestryableObject.get_actualHealth()).toReturn(2.5f);
   
    _controller.applyDamage(7.5f, _mockDestryableObject);
   
    float expectedHealth = _mockDestryableObject.get_totalHealth() - 7.5f;
   
    float value = _mockDestryableObject.get_actualHealth();
   
    assertTrue(expectedHealth == value);
  }
}
TOP

Related Classes of au.pavel.Tests.DamageTests

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.