Beispiel #1
0
        public void inMemoryVehicleStorage_must_be_empty_on_each_instance()
        {
            IVehicle vehicle, motoVehicle;

            SingleEnrollmentProvider        enrollmentProvider = new SingleEnrollmentProvider();
            IEqualityComparer <IEnrollment> equalityComparer   = new EnrollmentEqualityComparer();
            IVehicleBuilder vehicleBuilder = new VehicleBuilder(enrollmentProvider);
            IVehicleStorage vehicleStorage = new InMemoryVehicleStorage();

            vehicleBuilder.addWheel();
            vehicleBuilder.addWheel();
            vehicleBuilder.setDoors(0);
            vehicleBuilder.setEngine(40);
            motoVehicle = vehicleBuilder.build();

            Assert.AreEqual(0, vehicleStorage.Count);
            vehicleStorage.set(motoVehicle);
            Assert.AreEqual(1, vehicleStorage.Count);

            vehicle = vehicleStorage.get(enrollmentProvider.DefaultEnrollment);
            Assert.IsNotNull(vehicle);
            Assert.IsTrue(equalityComparer.Equals(enrollmentProvider.DefaultEnrollment, vehicle.Enrollment));

            vehicleStorage = new InMemoryVehicleStorage();
            Assert.AreEqual(0, vehicleStorage.Count);

            Negassert.mustFail(() =>
            {
                vehicle = vehicleStorage.get(enrollmentProvider.DefaultEnrollment);
            });
        }
Beispiel #2
0
        public void WrongBuildRequests_01()
        {
            SingleEnrollmentProvider enrollmentProvider = new SingleEnrollmentProvider();
            IVehicleBuilder          builder            = new VehicleBuilder(enrollmentProvider);

            Negassert.mustFail(() => builder.removeWheel());
            builder.addWheel();
            builder.addWheel();
            builder.addWheel();
            builder.addWheel();

            Negassert.mustFail(() => builder.setDoors(-27));
            builder.setDoors(5);
            Negassert.mustFail(() => builder.setEngine(-40));
            Negassert.mustFail(() => builder.setEngine(0));
            builder.setEngine(100);
            Negassert.mustFail(() => builder.setColor((CarColor)27));

            IVehicle vehicle = builder.build();

            Negassert.mustFail(() => vehicle.Engine.stop());

            vehicle.Engine.start();
            Negassert.mustFail(() => vehicle.Engine.start());

            Negassert.mustFail(() => vehicle.setWheelsPressure(-1));
            Negassert.mustFail(() => vehicle.setWheelsPressure(0));
            Negassert.mustFail(() => vehicle.setWheelsPressure(0.99));
            Negassert.mustFail(() => vehicle.setWheelsPressure(5.01));
            vehicle.setWheelsPressure(2);
        }
Beispiel #3
0
        public void builder_default_functionality()
        {
            SingleEnrollmentProvider enrollmentProvider = new SingleEnrollmentProvider();
            IVehicleBuilder          builder            = new VehicleBuilder(enrollmentProvider);

            builder.addWheel();
            builder.addWheel();
            builder.addWheel();
            builder.addWheel();

            builder.setDoors(2);
            builder.setEngine(100);
            builder.setColor(CarColor.Red);

            IVehicle vehicle = builder.build();

            Assert.IsNotNull(vehicle);
            Assert.IsNotNull(vehicle.Enrollment);
            Assert.AreEqual(2, vehicle.Doors.Length);
            Assert.AreEqual(4, vehicle.Wheels.Length);

            Assert.AreEqual(enrollmentProvider.DefaultEnrollment, vehicle.Enrollment);

            // propiedad de solo lectura
            // propiedad: array Door
            // campo privado: List Door
            vehicle.Doors[0].open();
            Assert.IsTrue(vehicle.Doors[0].IsOpen);
            Assert.IsFalse(vehicle.Doors[1].IsOpen);

            vehicle.Doors[0].close();
            Assert.IsFalse(vehicle.Doors[0].IsOpen);

            vehicle.Engine.start();
            Assert.IsTrue(vehicle.Engine.IsStarted);

            //ha de establecer la presion de cada rueda
            vehicle.setWheelsPressure(2.4);

            // propiedad de solo lectura
            // propiedad: array Wheels
            // campo privado: List Wheels
            foreach (IWheel wheel in vehicle.Wheels)
            {
                Assert.IsTrue(wheel.Pressure == 2.4);
            }
        }
Beispiel #4
0
        public void cannot_openDoor_twice()
        {
            SingleEnrollmentProvider enrollmentProvider = new SingleEnrollmentProvider();
            IVehicleBuilder          builder            = new VehicleBuilder(enrollmentProvider);

            builder.addWheel();
            builder.addWheel();
            builder.addWheel();
            builder.addWheel();

            builder.setDoors(2);
            builder.setEngine(100);
            builder.setColor(CarColor.Red);

            IVehicle vehicle = builder.build();

            vehicle.Doors[0].open();
            Negassert.mustFail(() => vehicle.Doors[0].open());
        }
Beispiel #5
0
        public void StorageComparison()
        {
            IVehicle motoVehicle;

            SingleEnrollmentProvider        enrollmentProvider = new SingleEnrollmentProvider();
            IEqualityComparer <IEnrollment> equalityComparer   = new EnrollmentEqualityComparer();
            IVehicleBuilder vehicleBuilder = new VehicleBuilder(enrollmentProvider);

            //IDtoConverter dtoConverter = new DefaultDtoConverter(enrollmentProvider);

            vehicleBuilder.addWheel();
            vehicleBuilder.addWheel();
            vehicleBuilder.setDoors(0);
            vehicleBuilder.setEngine(40);
            motoVehicle = vehicleBuilder.build();

            using (IVehicleStorage vehicleMemoryStorage = new InMemoryVehicleStorage())
            {
                using (IVehicleStorage vehicleFileStorage = new FileVehicleStorage(this.VehiclesFilePath, vehicleBuilder))
                {
                    vehicleFileStorage.set(motoVehicle);
                    vehicleMemoryStorage.set(motoVehicle);
                }

                IVehicle memoryVehicleA = vehicleMemoryStorage.get(enrollmentProvider.DefaultEnrollment);
                IVehicle fileVehicle;

                using (IVehicleStorage vehicleFileStorage = new FileVehicleStorage(this.VehiclesFilePath, vehicleBuilder))
                {
                    fileVehicle = vehicleFileStorage.get(enrollmentProvider.DefaultEnrollment);

                    Assert.IsNotNull(memoryVehicleA);
                    Assert.IsNotNull(vehicleFileStorage);

                    Assert.IsTrue(SameVehicle(memoryVehicleA, fileVehicle, equalityComparer));
                }
            }
        }
Beispiel #6
0
        public void fileVehicleStorage_must_persists_vehicles()
        {
            SingleEnrollmentProvider        enrollmentProvider = new SingleEnrollmentProvider();
            IEqualityComparer <IEnrollment> equalityComparer   = new EnrollmentEqualityComparer();
            IVehicleBuilder vehicleBuilder = new VehicleBuilder(enrollmentProvider);


            using (IVehicleStorage vehicleStorage =
                       new FileVehicleStorage(this.VehiclesFilePath, vehicleBuilder))
            {
                vehicleStorage.clear();
                Assert.AreEqual(0, vehicleStorage.Count);
            }

            vehicleBuilder.addWheel();
            vehicleBuilder.addWheel();
            vehicleBuilder.setDoors(0);
            vehicleBuilder.setEngine(40);
            IVehicle motoVehicle = vehicleBuilder.build();

            using (IVehicleStorage vehicleStorage =
                       new FileVehicleStorage(this.VehiclesFilePath, vehicleBuilder))
            {
                vehicleStorage.set(motoVehicle);
                Assert.AreEqual(1, vehicleStorage.Count);
            }

            using (IVehicleStorage vehicleStorage =
                       new FileVehicleStorage(this.VehiclesFilePath, vehicleBuilder))
            {
                Assert.AreEqual(1, vehicleStorage.Count);

                IVehicle vehicle = vehicleStorage.get(enrollmentProvider.DefaultEnrollment);
                Assert.IsNotNull(vehicle);
                Assert.IsTrue(equalityComparer.Equals(enrollmentProvider.DefaultEnrollment, vehicle.Enrollment));
            }
        }