public void EveryEyetracker_WhenCreated_UsesTheSameInstanceOfInnerEyetracker()
        {
            var expectedEyetracker = new EyetrackerStub();

            EyetrackerFactory.Default = new EyetrackerFactoryStub()
            {
                CanCreateEyetracker = true, Eyetracker = expectedEyetracker
            };

            var instances = EyetrackerStub.NumberOfCreatedInstances;

            var tracker1 = new Eyetracker();
            var tracker2 = new Eyetracker();

            Assert.That(EyetrackerStub.NumberOfCreatedInstances, Is.EqualTo(instances));
        }
        public void Eyetracker_WhenCreated_ShouldCreateEyetrackerFromDefaultFactory()
        {
            var expectedEyetracker = new EyetrackerStub()
            {
                X = .2f, Y = .23f, Z = .12f
            };

            EyetrackerFactory.Default = new EyetrackerFactoryStub()
            {
                CanCreateEyetracker = true, Eyetracker = expectedEyetracker
            };

            var eyetracker = new Eyetracker();

            Assert.That(eyetracker.X, Is.EqualTo(expectedEyetracker.X), "X");
            Assert.That(eyetracker.Y, Is.EqualTo(expectedEyetracker.Y), "Y");
        }
        public void EyetrackerVR_WhenVREyetrackerIsCreated_ShouldCreateInnerEyetrackerFromDefaultFactory()
        {
            var expectedEyetracker = new EyetrackerStub()
            {
                X = .34f, Y = .3f, Z = .8f
            };

            EyetrackerFactory.Default = new EyetrackerFactoryStub()
            {
                CanCreateEyetrackerVR = true, EyetrackerVR = expectedEyetracker
            };

            var eyetracker = new EyetrackerVR();

            Assert.That(eyetracker.X, Is.EqualTo(expectedEyetracker.X), "X");
            Assert.That(eyetracker.Y, Is.EqualTo(expectedEyetracker.Y), "Y");
            Assert.That(eyetracker.Z, Is.EqualTo(expectedEyetracker.Z), "Z");
        }