protected override void Establish_context()
		{
			var categoryRepository = MockRepository.GenerateMock<ICategoryRepository>();
			_sut = new SettingsValidator(categoryRepository);

			categoryRepository.Stub(x => x.Exists(null))
				.IgnoreArguments()
				.Return(false);

			_settings = new Settings
			            {
			            	CategoryName = "talk category",
			            	YearQueryString = "year query string",
			            	CreateTargetCategoryAndFields = false
			            };
		}
		protected override void Because()
		{
			Settings = new Settings
			           {
			           	CategoryName = "talk category",
			           	YearQueryString = "year query string",
			           	CreateTargetCategoryAndFields = false,
			           	MigrateFieldValues = false,
			           	Date = "date",
			           	Speaker = "speaker"
			           };
		}
Esempio n. 3
0
		public override StatusType SetValues(HttpContext context, NameValueCollection nvc)
		{
			IMemento oldState;
			IMemento newState;

			Settings settings = new Settings();
			_settingsMapper.Map(nvc, settings);

			try
			{
				var validation = _settingsValidator.Validate(settings).Interpret();
				if (validation.Failed)
				{
					SetMessage(context, validation.Message);
					return validation.StatusType;
				}

				// Write back.
				oldState = CreateMemento();

				CategoryName = settings.CategoryName;
				DateField = settings.Date;
				SpeakerField = settings.Speaker;
				YearQueryString = settings.YearQueryString;

				newState = CreateMemento();
			}
			catch (Exception ex)
			{
				SetMessage(context, String.Format("Error: {0}", ex.Message));
				return StatusType.Error;
			}

			try
			{
				EnableEventHandlers = false;

				PluginMigrator.MigrateSettings(settings.CreateTargetCategoryAndFields,
				                               settings.MigrateFieldValues,
				                               newState,
				                               oldState);
				return StatusType.Success;
			}
			catch (Exception ex)
			{
				SetMessage(context, String.Format("Error while migrating category and fields: {0}", ex.Message));
				return StatusType.Error;
			}
			finally
			{
				EnableEventHandlers = true;
			}
		}