public void InitializeTest() { // Arrange. const string ProcessName = "TestProcess"; var dtm = Mock.Create<IDynamicTypeManager>(); Mock.Arrange(() => dtm.GetEditableRootType(ProcessName)).Returns(typeof(TestEdit)); var mapping = new DataTriggerFieldMapping(TestsHelper.ExtractPropertyName(() => new TestEdit().Text), true, (s, d) => null); var updater = new SimpleFieldUpdater { DynamicTypeManager = dtm }; // Act. updater.Initialize(ProcessName, mapping); // Assert. Assert.AreEqual(TestsHelper.ExtractPropertyName(() => new TestEdit().Text), updater.FieldName); Assert.IsTrue(updater.IsKey); Assert.AreSame(mapping.ValueCalculator, updater.ValueCalculator); Assert.AreSame(typeof(string), updater.PropertyType); // Exceptions. var invalidMapping1 = new DataTriggerFieldMapping("InvalidField", false, (s, d) => null); var invalidMapping2 = new DataTriggerFieldMapping(TestsHelper.ExtractPropertyName(() => new TestEdit().ReadOnly), false, (s, d) => null); TestsHelper.VerifyThrow<ArgumentNullException>(() => updater.Initialize(ProcessName, null)); TestsHelper.VerifyThrow<InvalidOperationException>(() => updater.Initialize(ProcessName, invalidMapping1)); TestsHelper.VerifyThrow<InvalidOperationException>(() => updater.Initialize(ProcessName, invalidMapping2)); }
public void InitializeLocalizedFieldTest() { // Arrange. const string ProcessName = "TestProcess"; var dtm = Mock.Create<IDynamicTypeManager>(); Mock.Arrange(() => dtm.GetEditableRootType(ProcessName)).Returns(typeof(TestEdit)); var mapping = new DataTriggerFieldMapping(TestsHelper.ExtractPropertyName(() => new TestEdit().Localized), true, (s, d) => null); var updater = new SimpleFieldUpdater { DynamicTypeManager = dtm }; // Act. updater.Initialize(ProcessName, mapping); // Assert. Assert.AreEqual(TestsHelper.ExtractPropertyName(() => new TestEdit().Localized), updater.FieldName); Assert.IsTrue(updater.IsKey); Assert.AreSame(mapping.ValueCalculator, updater.ValueCalculator); Assert.AreSame(typeof(string), updater.PropertyType); Assert.IsTrue(updater.AllowLocalizedData); Assert.AreEqual(3, updater.SupportedLocalizations.Count); Assert.IsTrue(updater.SupportedLocalizations.Any(l => Equals(l.CultureName, "en-US"))); Assert.IsTrue(updater.SupportedLocalizations.Any(l => Equals(l.CultureName, "es-ES"))); Assert.IsTrue(updater.SupportedLocalizations.Any(l => Equals(l.CultureName, "fr-FR"))); }