Exemplo n.º 1
0
 public void ReturnTypeIsCorrectWhenCreate()
 {
     foreach (var makeType in makeTypes)
     {
         var actual = makeFactory.Create(makeType);
         Assert.AreEqual(actual.GetType(), makeType);
     }
 }
Exemplo n.º 2
0
        public ModelBase Create(Type modelType, DateTime creationDate)
        {
            if (!modelType.IsSubclassOf(typeof(ModelBase)) || modelType.IsAbstract)
            {
                throw new NotSupportedException($"Переданный параметр типа {modelType} не является типом конкретной модели машины {typeof(ModelBase)}.");
            }

            var model = Activator.CreateInstance(modelType, new object[] { creationDate }) as ModelBase;
            var make  = makeFactory.Create(model.MakeType);

            if (make == null)
            {
                throw new NullReferenceException($"Не удалось получить тип марки модели {model.MakeType}.");
            }

            return(model);
        }
Exemplo n.º 3
0
        public CarBase Create(Type modelType, string number, Color color, State state, DateTime modelCreation)
        {
            if (number.IsNullOrEmpty())
            {
                throw new ArgumentNullException("Car number must be init.");
            }

            if (!Regex.IsMatch(number, carNumberPattern))
            {
                throw new ArgumentException("Incorrect car number format.");
            }

            var model = modelFactory.Create(modelType, modelCreation);
            var make  = makeFactory.Create(model.MakeType);

            return(new CarBase
            {
                Number = number,
                Make = make,
                Color = color,
                Model = model,
                State = state
            });
        }