public void ensureFromCollectionWithEmptyUnitUsesMinimumUnit()
        {
            double    minValue  = 20;
            double    maxValue  = 60;
            double    increment = 2;
            Dimension continuousDimensionInterval = new ContinuousDimensionInterval(minValue, maxValue, increment);

            List <double> values = new List <double>()
            {
                21, 35, 42
            };
            Dimension discreteDimensionInterval = new DiscreteDimensionInterval(values);

            double    value = 72;
            Dimension singleValueDimension = new SingleValueDimension(value);

            IEnumerable <Dimension> dimensions = new List <Dimension>()
            {
                continuousDimensionInterval, discreteDimensionInterval, singleValueDimension
            };

            GetAllDimensionsModelView getAllDimensionsModelView = DimensionModelViewService.fromCollection(dimensions, "");

            string minimumUnit = MeasurementUnitService.getMinimumUnit();

            GetContinuousDimensionIntervalModelView continuousDimensionIntervalModelView = new GetContinuousDimensionIntervalModelView();

            continuousDimensionIntervalModelView.minValue  = minValue;
            continuousDimensionIntervalModelView.maxValue  = maxValue;
            continuousDimensionIntervalModelView.increment = increment;
            continuousDimensionIntervalModelView.unit      = minimumUnit;


            GetDiscreteDimensionIntervalModelView discreteDimensionIntervalModelView = new GetDiscreteDimensionIntervalModelView();

            discreteDimensionIntervalModelView.values = values;
            discreteDimensionIntervalModelView.unit   = minimumUnit;


            GetSingleValueDimensionModelView singleValueDimensionModelView = new GetSingleValueDimensionModelView();

            singleValueDimensionModelView.value = value;
            singleValueDimensionModelView.unit  = minimumUnit;

            GetAllDimensionsModelView expected = new GetAllDimensionsModelView()
            {
                continuousDimensionIntervalModelView, discreteDimensionIntervalModelView, singleValueDimensionModelView
            };

            for (int i = 0; i < 3; i++)
            {
                Assert.True(equalModelViews(getAllDimensionsModelView[i], expected[i]));
            }
        }
        /// <summary>
        /// Creates a model view with the information about a collection of dimension
        /// </summary>
        /// <param name="dimensions">IEnumerable with the collection of dimensions</param>
        /// <param name="unit">Unit to which the values will be converted</param>
        /// <returns>GetAllDimensionsModelView with the collection of dimensions model view</returns>
        /// <exception cref="System.ArgumentNullException">Throw when the provided IEnumerable of Dimension is null.</exception>
        public static GetAllDimensionsModelView fromCollection(IEnumerable <Dimension> dimensions, string unit)
        {
            if (dimensions == null)
            {
                throw new ArgumentNullException(ERROR_NULL_DIMENSION_COLLECTION);
            }
            //if the provided unit string is null or empty, resort to the default implementation
            if (Strings.isNullOrEmpty(unit))
            {
                return(fromCollection(dimensions));
            }

            GetAllDimensionsModelView allDimensionsModelView = new GetAllDimensionsModelView();

            foreach (Dimension dimension in dimensions)
            {
                allDimensionsModelView.Add(fromEntity(dimension, unit));
            }
            return(allDimensionsModelView);
        }