public void CheckIfNumberOfTypesIsCorrect()
 {
     Assert.All(CatalogTypeFiles.Where(f => f.StartsWith(PathToValidFiles, StringComparison.InvariantCulture)),
                catalogTypeFilePath =>
     {
         var catalogTypeFile     = new TypeCatalogFile(catalogTypeFilePath);
         var catalogTypeFileText = File.ReadAllLines(catalogTypeFilePath);
         Assert.Equal(catalogTypeFile.Types.Count, catalogTypeFileText?.Count(l => !string.IsNullOrWhiteSpace(l)) - 1);
     }
                );
 }
 public void CheckIfNumberOfParametersIsCorrect()
 {
     Assert.All(CatalogTypeFiles.Where(f => f.StartsWith(PathToValidFiles, StringComparison.InvariantCulture)),
                catalogTypeFilePath =>
     {
         var catalogTypeFile       = new TypeCatalogFile(catalogTypeFilePath);
         var catalogTypeFileText   = File.ReadAllLines(catalogTypeFilePath);
         var catalogTypeFileHeader = catalogTypeFileText.FirstOrDefault();
         Assert.Equal(catalogTypeFile.parameterDefinitions.Count, catalogTypeFileHeader?.Count(f => f == ',') ?? 0);
     }
                );
 }
        /// <summary>
        /// is the phone type catalog instance.
        /// </summary>
        /// <returns></returns>
        private static TypeCatalogFile AppleTypeCatalogInstance()
        {
            var catalogTypeFile = new TypeCatalogFile();
            var commonParams    = new List <IParameterWithValue>
            {
                new TypeCatalogFile.Parameter <string>("Manufacturer", ParameterType.Text, "Apple"),
                new TypeCatalogFile.Parameter <string>("Model", ParameterType.Text, "A1549"),
                new TypeCatalogFile.Parameter <double>("Width", ParameterType.Length, 77.8, DisplayUnitType.DUT_MILLIMETERS),
                new TypeCatalogFile.Parameter <double>("Depth", ParameterType.Length, 6.9, DisplayUnitType.DUT_MILLIMETERS),
                new TypeCatalogFile.Parameter <double>("Height", ParameterType.Length, 158.1, DisplayUnitType.DUT_MILLIMETERS),
            };

            catalogTypeFile.Add("MG562LL/A", commonParams.Concat(new List <IParameterWithValue>
            {
                new TypeCatalogFile.Parameter <string>("AssemblyCode", ParameterType.Text, "MG562LL/A"),
                new TypeCatalogFile.Parameter <string>("Description", ParameterType.Text, "iPhone 6 16GB Gold (GSM) T-Mobile"),
                new TypeCatalogFile.Parameter <double>("Price", ParameterType.Currency, 299.90),
                new TypeCatalogFile.Parameter <string>("Currency", ParameterType.Text, "$"),
                new TypeCatalogFile.Parameter <int>("Storage GB", 16),
                new TypeCatalogFile.Parameter <bool>("Unlocked", ParameterType.YesNo, false),
            }).ToArray());
            catalogTypeFile.Add("MG5D2LL/A", commonParams.Concat(new List <IParameterWithValue>
            {
                new TypeCatalogFile.Parameter <string>("AssemblyCode", ParameterType.Text, "MG5D2LL/A"),
                new TypeCatalogFile.Parameter <string>("Description", ParameterType.Text, "iPhone 6 64GB Gold (GSM) T-Mobile"),
                new TypeCatalogFile.Parameter <double>("Price", ParameterType.Currency, 380.0),
                new TypeCatalogFile.Parameter <string>("Currency", ParameterType.Text, "$"),
                new TypeCatalogFile.Parameter <int>("Storage GB", 32),
                new TypeCatalogFile.Parameter <bool>("Unlocked", ParameterType.YesNo, false),
            }).ToArray());
            catalogTypeFile.Add("MG3A2CL/A", commonParams.Concat(new List <IParameterWithValue>
            {
                new TypeCatalogFile.Parameter <string>("AssemblyCode", ParameterType.Text, "MG3A2CL/A"),
                new TypeCatalogFile.Parameter <string>("Description", ParameterType.Text, "iPhone 6 16GB Space Grey Unlocked"),
                new TypeCatalogFile.Parameter <double>("Price", ParameterType.Currency, 600.0),
                new TypeCatalogFile.Parameter <string>("Currency", ParameterType.Text, "CAD"),
                new TypeCatalogFile.Parameter <int>("Storage GB", 16),
                new TypeCatalogFile.Parameter <bool>("Unlocked", ParameterType.YesNo, true),
            }).ToArray());

            return(catalogTypeFile);
        }