public void ReturnTypeIsCorrectWhenCreate() { foreach (var makeType in makeTypes) { var actual = makeFactory.Create(makeType); Assert.AreEqual(actual.GetType(), makeType); } }
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); }
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 }); }