/// <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(); }
/// <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); }
/// <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) { }
/// <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) { }
/// <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(); }
/// <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) { }
/// <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) {