/// <summary> Initialises class properties. </summary>
 /// <param name="deserializedTags"> Vehicle tags deserialized from JSON data to select subclasses from. </param>
 /// <param name="vehiclePerformanceData"> Vehicle performance data to initialise this instance with. </param>
 /// <param name="branch"> The vehicle branch for which to select subclasses. </param>
 private void InitialiseProperties(VehicleTagsDeserializedFromJson deserializedTags, VehiclePerformanceData vehiclePerformanceData, EBranch branch)
 {
     if (branch == EBranch.Army)
     {
         IsWheeled = vehiclePerformanceData.MoveType.Contains("wheeled");
         CanScout  = deserializedTags.CanScout;
     }
     InitialiseIndex();
 }
示例#2
0
 /// <summary> Initialises class properties. </summary>
 /// <param name="deserializedTags"> Vehicle tags deserialized from JSON data to select subclasses from. </param>
 /// <param name="branch"> The vehicle branch for which to select subclasses. </param>
 private void InitialiseProperties(VehicleTagsDeserializedFromJson deserializedTags, EBranch branch)
 {
     if (branch == EBranch.Aviation)
     {
         IsNavalAircraft = deserializedTags.IsNavalAircraft;
         IsHydroplane    = deserializedTags.IsHydroplane;
         IsTorpedoBomber = deserializedTags.CanCarryTorpedoes;
     }
     InitialiseIndex();
 }
        public void Constructor_3_Throws()
        {
            // arrange
            var mockVehicle = new Mock <IVehicle>();

            mockVehicle.Setup(vehicle => vehicle.GaijinId).Returns(nameof(mockVehicle));
            mockVehicle.Setup(vehicle => vehicle.Class).Returns(EVehicleClass.Fighter);

            var vehicleTags = new VehicleTagsDeserializedFromJson
            {
                IsInterceptor       = true,
                IsAirDefenceFighter = true,
                IsJetFighter        = true,
            };

            // act
            Action createSubclass = () => { new VehicleSubclasses(Presets.MockDataRepository.Object, mockVehicle.Object, vehicleTags); };

            // assert
            createSubclass.Should().Throw <NotImplementedException>();
        }
        public void Constructor_Fighter_Returns_Fighter()
        {
            // arrange
            var mockVehicle = new Mock <IVehicle>();

            mockVehicle.Setup(vehicle => vehicle.Class).Returns(EVehicleClass.Fighter);

            var vehicleTags = new VehicleTagsDeserializedFromJson
            {
                IsFighter = true,
            };
            var subclasses = new List <EVehicleSubclass> {
                EVehicleSubclass.Fighter
            };
            var subclass = new VehicleSubclasses(Presets.MockDataRepository.Object, mockVehicle.Object, vehicleTags);

            // act
            var allSubclasses = subclass.All;

            // assert
            allSubclasses.Should().BeEquivalentTo(subclasses);
        }
        public void Constructor_Td_Atgm_Returns_Atgm()
        {
            // arrange
            var mockVehicle = new Mock <IVehicle>();

            mockVehicle.Setup(vehicle => vehicle.GaijinId).Returns(nameof(mockVehicle));
            mockVehicle.Setup(vehicle => vehicle.Class).Returns(EVehicleClass.TankDestroyer);

            var vehicleTags = new VehicleTagsDeserializedFromJson
            {
                IsTankDestroyer = true,
                IsAtgmCarrier   = true,
            };
            var subclasses = new List <EVehicleSubclass> {
                EVehicleSubclass.AntiTankMissileCarrier
            };
            var subclass = new VehicleSubclasses(Presets.MockDataRepository.Object, mockVehicle.Object, vehicleTags);

            // act
            var allSubclasses = subclass.All;

            // assert
            allSubclasses.Should().BeEquivalentTo(subclasses);
        }
        public void Constructor_Frigate_Gunboat_Returns_Gunboat()
        {
            // arrange
            var mockVehicle = new Mock <IVehicle>();

            mockVehicle.Setup(vehicle => vehicle.GaijinId).Returns(nameof(mockVehicle));
            mockVehicle.Setup(vehicle => vehicle.Class).Returns(EVehicleClass.Frigate);

            var vehicleTags = new VehicleTagsDeserializedFromJson
            {
                IsFrigate      = true,
                IsHeavyGunBoat = true,
            };
            var subclasses = new List <EVehicleSubclass> {
                EVehicleSubclass.HeavyGunboat
            };
            var subclass = new VehicleSubclasses(Presets.MockDataRepository.Object, mockVehicle.Object, vehicleTags);

            // act
            var allSubclasses = subclass.All;

            // assert
            allSubclasses.Should().BeEquivalentTo(subclasses);
        }
        public void Constructor_Barge_Ferry_Returns_Ferry()
        {
            // arrange
            var mockVehicle = new Mock <IVehicle>();

            mockVehicle.Setup(vehicle => vehicle.GaijinId).Returns(nameof(mockVehicle));
            mockVehicle.Setup(vehicle => vehicle.Class).Returns(EVehicleClass.Barge);

            var vehicleTags = new VehicleTagsDeserializedFromJson
            {
                IsBarge = true,
                IsFerry = true,
            };
            var subclasses = new List <EVehicleSubclass> {
                EVehicleSubclass.NavalFerryBarge
            };
            var subclass = new VehicleSubclasses(Presets.MockDataRepository.Object, mockVehicle.Object, vehicleTags);

            // act
            var allSubclasses = subclass.All;

            // assert
            allSubclasses.Should().BeEquivalentTo(subclasses);
        }
        public void Constructor_Attacker_StrikeAircraft_Returns_StrikeAircraft()
        {
            // arrange
            var mockVehicle = new Mock <IVehicle>();

            mockVehicle.Setup(vehicle => vehicle.GaijinId).Returns(nameof(mockVehicle));
            mockVehicle.Setup(vehicle => vehicle.Class).Returns(EVehicleClass.Attacker);

            var vehicleTags = new VehicleTagsDeserializedFromJson
            {
                IsAttacker       = true,
                IsStrikeAircraft = true,
            };
            var subclasses = new List <EVehicleSubclass> {
                EVehicleSubclass.StrikeAircraft
            };
            var subclass = new VehicleSubclasses(Presets.MockDataRepository.Object, mockVehicle.Object, vehicleTags);

            // act
            var allSubclasses = subclass.All;

            // assert
            allSubclasses.Should().BeEquivalentTo(subclasses);
        }
示例#9
0
 /// <summary> Creates a new transient object that can be persisted later. </summary>
 /// <param name="dataRepository"> A data repository to persist the object with. </param>
 /// <param name="vehicle"> The vehicle this object belongs to. </param>
 /// <param name="deserializedTags"> Vehicle tags deserialized from JSON data to initialize this instance with. </param>
 public AircraftTags(IDataRepository dataRepository, IVehicle vehicle, VehicleTagsDeserializedFromJson deserializedTags)
     : this(dataRepository, -1L, vehicle, deserializedTags)
 {
 }
示例#10
0
 /// <summary> Creates a new transient object that can be persisted later. </summary>
 /// <param name="dataRepository"> A data repository to persist the object with. </param>
 /// <param name="id"> The objects's ID. </param>
 /// <param name="vehicle"> The vehicle this object belongs to. </param>
 /// <param name="deserializedTags"> Vehicle tags deserialized from JSON data to initialize this instance with. </param>
 public AircraftTags(IDataRepository dataRepository, long id, IVehicle vehicle, VehicleTagsDeserializedFromJson deserializedTags)
     : base(dataRepository, id, vehicle)
 {
     InitialiseProperties(deserializedTags, Vehicle.Branch);
     LogCreation();
 }
 /// <summary> Creates a new transient object that can be persisted later. </summary>
 /// <param name="dataRepository"> A data repository to persist the object with. </param>
 /// <param name="id"> The objects's ID. </param>
 /// <param name="vehicle"> The vehicle this object belongs to. </param>
 /// <param name="deserializedTags"> Vehicle tags deserialized from JSON data to initialise this instance with. </param>
 /// <param name="vehiclePerformanceData"> Vehicle performance data to initialise this instance with. </param>
 public GroundVehicleTags(IDataRepository dataRepository, long id, IVehicle vehicle, VehicleTagsDeserializedFromJson deserializedTags, VehiclePerformanceData vehiclePerformanceData)
     : base(dataRepository, id, vehicle)
 {
     InitialiseProperties(deserializedTags, vehiclePerformanceData, Vehicle.Branch.AsEnumerationItem);
     LogCreation();
 }
 /// <summary> Creates a new transient object that can be persisted later. </summary>
 /// <param name="dataRepository"> A data repository to persist the object with. </param>
 /// <param name="vehicle"> The vehicle this object belongs to. </param>
 /// <param name="deserializedTags"> Vehicle tags deserialized from JSON data to initialise this instance with. </param>
 /// <param name="vehiclePerformanceData"> Vehicle performance data to initialise this instance with. </param>
 public GroundVehicleTags(IDataRepository dataRepository, IVehicle vehicle, VehicleTagsDeserializedFromJson deserializedTags, VehiclePerformanceData vehiclePerformanceData)
     : this(dataRepository, -1L, vehicle, deserializedTags, vehiclePerformanceData)
 {
 }
示例#13
0
 /// <summary> Creates a new transient object that can be persisted later. </summary>
 /// <param name="dataRepository"> A data repository to persist the object with. </param>
 /// <param name="id"> The object's ID. </param>
 /// <param name="vehicle"> The vehicle the data set belongs to. </param>
 /// <param name="deserializedTags"> Vehicle tags deserialized from JSON data to initialize this instance with. </param>
 protected VehicleSubclasses(IDataRepository dataRepository, long id, IVehicle vehicle, VehicleTagsDeserializedFromJson deserializedTags)
     : base(dataRepository, id, vehicle)
 {
     InitialiseProperties(SelectSubclassesToProcess(deserializedTags, vehicle.Class));
     LogCreation();
 }
示例#14
0
 /// <summary> Creates a new transient object that can be persisted later. </summary>
 /// <param name="dataRepository"> A data repository to persist the object with. </param>
 /// <param name="vehicle"> The vehicle the data set belongs to. </param>
 /// <param name="deserializedTags"> Vehicle tags deserialized from JSON data to initialize this instance with. </param>
 protected internal VehicleSubclasses(IDataRepository dataRepository, IVehicle vehicle, VehicleTagsDeserializedFromJson deserializedTags)
     : this(dataRepository, -1L, vehicle, deserializedTags)
 {
 }
示例#15
0
 /// <summary> Selects subclasses from <paramref name="deserializedTags"/> based on what pertains to the <paramref name="vehicleClass"/>. </summary>
 /// <param name="deserializedTags"> Vehicle tags deserialized from JSON data to select subclasses from. </param>
 /// <param name="vehicleClass"> The vehicle class for which to select subclasses. </param>
 /// <returns></returns>
 private IEnumerable <EVehicleSubclass> SelectSubclassesToProcess(VehicleTagsDeserializedFromJson deserializedTags, EVehicleClass vehicleClass)
 {