Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace MHS {
- interface ISpinner {
- public void spin(Vector3 value);
- }
- [Serializable]
- public SpinController { //we can instantiate this in a test
- public float speed;
- public Vector3 axis;
- private ISpinner spinner;
- public void setSpinController(ISpinController spinner) {
- this.spinner = spinner;
- }
- public void doStuffBasedOnTime(float time) {
- spinner.spin(time);
- }
- }
- public Spinner : GameBehavior, ISpinner { // we cannot instantiate this in a test
- public SpinController controller;
- void OnEnable() {
- controller.SetSpinController(this);
- }
- void Update() {
- controller.doStuffBasedOnTime(Time.deltaTime);
- }
- //ISpinner implementation:
- public void spin(Vector3 value) {
- transform.Rotate(value);
- }
- }
- }
- namespace MHS.Tests {
- [TestFixture]
- public class SpinnerTest {
- }
- [Test]
- public void objectSpinsBasedOnTimeAndAxis() {
- //arrange
- SpinController controller = ...;
- ISpinner spinner = ...;
- controller.speed = 5f;
- controller.axis = new Vector3(0,1,0);
- controller.SetSpinner(spinner);
- //act
- controller.doStuffBasedOnTime(0.02f);
- //assert
- Assert.AreEqual(spinner.rotation, controller.axis*controller.speed);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement