public void RebroadcastOptionsPresenter_ValueChanged_Does_Nothing_If_No_Server_Is_Selected() { _Presenter.Initialise(_View.Object); var line1 = new RebroadcastSettings() { Name = "ABC", Format = RebroadcastFormat.Port30003, Port = 10001, Enabled = true }; var line2 = new RebroadcastSettings() { Name = "XYZ", Format = RebroadcastFormat.Port30003, Port = 10002, Enabled = true }; _View.Object.RebroadcastSettings.AddRange(new RebroadcastSettings[] { line1, line2 }); SetupSelectedRebroadcastSettings(null); _View.Raise(v => v.SelectedServerChanged += null, EventArgs.Empty); _View.Object.ServerEnabled = false; _View.Object.ServerName = "New"; _View.Object.ServerFormat = RebroadcastFormat.Passthrough; _View.Object.ServerPort = 8080; _View.Raise(v => v.ValueChanged += null, EventArgs.Empty); _View.Verify(v => v.RefreshSelectedServer(), Times.Never()); }
public void RebroadcastOptionsPresenter_ValueChanged_Updates_Selected_Line_With_New_Enabled_Value() { foreach (var enabled in new bool[] { true, false }) { TestCleanup(); TestInitialise(); _Presenter.Initialise(_View.Object); var line1 = new RebroadcastSettings() { Name = "ABC", Format = RebroadcastFormat.Port30003, Port = 10001, Enabled = true }; var line2 = new RebroadcastSettings() { Name = "XYZ", Format = RebroadcastFormat.Port30003, Port = 10002, Enabled = !enabled }; _View.Object.RebroadcastSettings.AddRange(new RebroadcastSettings[] { line1, line2 }); SetupSelectedRebroadcastSettings(line2); _View.Raise(v => v.SelectedServerChanged += null, EventArgs.Empty); SetupExpectedValidationFields(new ValidationResult[] { }); _View.Object.ServerEnabled = enabled; _View.Raise(v => v.ValueChanged += null, EventArgs.Empty); _View.Verify(v => v.ShowValidationResults(It.IsAny <IEnumerable <ValidationResult> >()), Times.Exactly(2)); Assert.AreEqual(enabled, line2.Enabled); _View.Verify(v => v.RefreshSelectedServer(), Times.Once()); } }
public void RebroadcastOptionsPresenter_ValueChanged_Updates_Selected_Line_With_Port() { _Presenter.Initialise(_View.Object); var line1 = new RebroadcastSettings() { Name = "ABC", Format = RebroadcastFormat.Port30003, Port = 10001, Enabled = true }; var line2 = new RebroadcastSettings() { Name = "XYZ", Format = RebroadcastFormat.Port30003, Port = 10002, Enabled = true }; _View.Object.RebroadcastSettings.AddRange(new RebroadcastSettings[] { line1, line2 }); SetupSelectedRebroadcastSettings(line2); _View.Raise(v => v.SelectedServerChanged += null, EventArgs.Empty); SetupExpectedValidationFields(new ValidationResult[] { }); _View.Object.ServerPort = 8080; _View.Raise(v => v.ValueChanged += null, EventArgs.Empty); _View.Verify(v => v.ShowValidationResults(It.IsAny <IEnumerable <ValidationResult> >()), Times.Exactly(2)); Assert.AreEqual(8080, line2.Port); _View.Verify(v => v.RefreshSelectedServer(), Times.Once()); }
public void RebroadcastOptionsPresenter_ValueChanged_Displays_Validation_Message_When_Port_Duplicates_Existing_Port() { _Presenter.Initialise(_View.Object); var line1 = new RebroadcastSettings() { Name = "ABC", Format = RebroadcastFormat.Port30003, Port = 10001, Enabled = true }; var line2 = new RebroadcastSettings() { Name = "XYZ", Format = RebroadcastFormat.Port30003, Port = 10002, Enabled = true }; _View.Object.RebroadcastSettings.AddRange(new RebroadcastSettings[] { line1, line2 }); SetupSelectedRebroadcastSettings(line2); _View.Raise(v => v.SelectedServerChanged += null, EventArgs.Empty); SetupExpectedValidationFields(new ValidationResult[] { new ValidationResult(ValidationField.BaseStationPort, Strings.PortMustBeUnique) }); _View.Object.ServerName = "XYZ"; _View.Object.ServerPort = 10001; _View.Raise(v => v.ValueChanged += null, EventArgs.Empty); _View.Verify(v => v.ShowValidationResults(It.IsAny <IEnumerable <ValidationResult> >()), Times.Exactly(2)); _View.Verify(v => v.RefreshSelectedServer(), Times.Never()); Assert.AreEqual(10002, line2.Port); }
public void RebroadcastOptionsPresenter_ValueChanged_Does_Not_Display_Validation_Message_When_Port_Duplicates_Own_Port() { _Presenter.Initialise(_View.Object); var line1 = new RebroadcastSettings() { Name = "ABC", Format = RebroadcastFormat.Port30003, Port = 10001, Enabled = true }; var line2 = new RebroadcastSettings() { Name = "XYZ", Format = RebroadcastFormat.Port30003, Port = 10002, Enabled = true }; _View.Object.RebroadcastSettings.AddRange(new RebroadcastSettings[] { line1, line2 }); SetupSelectedRebroadcastSettings(line2); _View.Raise(v => v.SelectedServerChanged += null, EventArgs.Empty); SetupExpectedValidationFields(new ValidationResult[] { }); _View.Object.ServerName = "XYZ"; _View.Object.ServerPort = 10002; _View.Raise(v => v.ValueChanged += null, EventArgs.Empty); _View.Verify(v => v.ShowValidationResults(It.IsAny <IEnumerable <ValidationResult> >()), Times.Exactly(2)); }
public void TestInitialise() { _OriginalClassFactory = Factory.TakeSnapshot(); // Note that the class factory will keep returning the SAME instance for all of the // interfaces for which CreateMockImplementation is called... this means we can't // comprehensively test the handling of multiple servers. Creating a wrapper using // Mock<> is kind of possible but gets tricky around events, and in any case it's // rather defeating the point of using a mocking framework. _Server = TestUtilities.CreateMockImplementation <IRebroadcastServer>(); _Listener = TestUtilities.CreateMockImplementation <IListener>(); _BroadcastProvider = TestUtilities.CreateMockImplementation <IBroadcastProvider>(); _ConfigurationStorage = TestUtilities.CreateMockSingleton <IConfigurationStorage>(); _Configuration = new Configuration(); _ConfigurationStorage.Setup(r => r.Load()).Returns(_Configuration); _RebroadcastSettings = new RebroadcastSettings() { Name = "A", Enabled = true, Port = 1000, Format = RebroadcastFormat.Passthrough }; _Configuration.RebroadcastSettings.Add(_RebroadcastSettings); _Manager = Factory.Singleton.Resolve <IRebroadcastServerManager>(); _Manager.Listener = _Listener.Object; }
public void RebroadcastSettings_Clone_Returns_Deep_Copy_Of_Original() { var original = new RebroadcastSettings() { Enabled = true, Format = RebroadcastFormat.Avr, Name = "The name", Port = 1234, }; var copy = (RebroadcastSettings)original.Clone(); Assert.AreNotSame(original, copy); foreach (var property in typeof(RebroadcastSettings).GetProperties()) { switch (property.Name) { case "Enabled": Assert.AreEqual(true, copy.Enabled); break; case "Format": Assert.AreEqual(RebroadcastFormat.Avr, copy.Format); break; case "Name": Assert.AreEqual("The name", copy.Name); break; case "Port": Assert.AreEqual(1234, copy.Port); break; default: throw new NotImplementedException(); } } }
public static void CheckProperties(RebroadcastSettings settings) { TestUtilities.TestProperty(settings, r => r.Enabled, false); TestUtilities.TestProperty(settings, r => r.Format, RebroadcastFormat.None, RebroadcastFormat.Passthrough); TestUtilities.TestProperty(settings, r => r.Name, null, "ABC"); TestUtilities.TestProperty(settings, r => r.Port, 0, 19000); }
/// <summary> /// Fills the servers list view. /// </summary> private void PopulateServers() { var currentSuppressState = _SuppressItemSelectedEventHandler; try { _SuppressItemSelectedEventHandler = true; var selected = SelectedRebroadcastSettings; listView.Items.Clear(); foreach (var settings in RebroadcastSettings) { var item = new ListViewItem() { Tag = settings }; PopulateListViewItem(item); listView.Items.Add(item); } if (RebroadcastSettings.Contains(selected)) { SelectedRebroadcastSettings = selected; } } finally { _SuppressItemSelectedEventHandler = currentSuppressState; } }
/// <summary> /// Hooks child objects on a rebroadcast setting. /// </summary> /// <param name="record"></param> private void RebroadcastSetting_HookChild(RebroadcastSettings record) { if (!HaveHookedChildren(record)) { record.Access.PropertyChanged += RebroadcastSetting_Access_PropertyChanged; RecordHookedChild(record, record.Access); } }
/// <summary> /// Unhooks child objects on a rebroadcast setting. /// </summary> /// <param name="record"></param> private void RebroadcastSetting_UnhookChild(RebroadcastSettings record) { foreach (var child in GetHookedChildren(record).OfType <Access>()) { child.PropertyChanged -= RebroadcastSetting_Access_PropertyChanged; RecordUnhookedChild(record, child); } }
private RebroadcastSettings SetupSelectedRebroadcastSettings() { var result = new RebroadcastSettings() { Enabled = true, Name = "Server", Port = 12001, Format = RebroadcastFormat.Port30003 }; return(SetupSelectedRebroadcastSettings(result)); }
public void RebroadcastOptionsPresenter_Initialise_Selects_First_RebroadcastSettings() { var rebroadcastSettings = new RebroadcastSettings(); _View.Object.RebroadcastSettings.Add(rebroadcastSettings); _Presenter.Initialise(_View.Object); Assert.AreSame(_View.Object.SelectedRebroadcastSettings, rebroadcastSettings); }
public void ConfigurationListener_Does_Not_Raise_Events_After_RebroadcastSettings_Is_Detached() { var record = new RebroadcastSettings(); _Configuration.RebroadcastSettings.Add(record); _Configuration.RebroadcastSettings.Remove(record); record.UniqueId += 1; Assert.IsFalse(RaisedEvent <RebroadcastSettings>(ConfigurationListenerGroup.RebroadcastSetting, r => r.UniqueId, record, isListChild: true)); Assert.AreEqual(2, _PropertyChanged.CallCount); }
/// <summary> /// Raised when the user asks for a new server to be created. /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void View_NewServerClicked(object sender, EventArgs args) { var server = new RebroadcastSettings() { Enabled = true, Name = SelectUniqueName("New Server"), Format = RebroadcastFormat.Passthrough, Port = SelectUniquePort(DefaultPort), }; _View.RebroadcastSettings.Add(server); _View.RefreshServers(); _View.SelectedRebroadcastSettings = server; CopySelectedServerToFields(); _View.FocusOnEditFields(); }
public static void CheckProperties(RebroadcastSettings settings) { TestUtilities.TestProperty(settings, r => r.Enabled, false); TestUtilities.TestProperty(settings, r => r.Format, null, RebroadcastFormat.Passthrough); TestUtilities.TestProperty(settings, r => r.Name, null, "ABC"); TestUtilities.TestProperty(settings, r => r.IsTransmitter, false); TestUtilities.TestProperty(settings, r => r.TransmitAddress, null, "www.word.up"); TestUtilities.TestProperty(settings, r => r.UseKeepAlive, false); TestUtilities.TestProperty(settings, r => r.IdleTimeoutMilliseconds, 30000, 15000); TestUtilities.TestProperty(settings, r => r.Passphrase, null, "Ab"); TestUtilities.TestProperty(settings, r => r.Port, 0, 19000); TestUtilities.TestProperty(settings, r => r.ReceiverId, 0, 1234); TestUtilities.TestProperty(settings, r => r.UniqueId, 0, 456); TestUtilities.TestProperty(settings, r => r.SendIntervalMilliseconds, 1000, 2000); TestUtilities.TestProperty(settings, r => r.StaleSeconds, 3, 15); Assert.IsNotNull(settings.Access); }
private void ConfigureAuthentication(RebroadcastSettings rebroadcastSettings, IRebroadcastServer server) { var existingAuthentication = server.Connector.Authentication as IPassphraseAuthentication; var passphrase = rebroadcastSettings.Passphrase ?? ""; if ((existingAuthentication == null && passphrase != "") || (existingAuthentication != null && existingAuthentication.Passphrase != passphrase)) { if (passphrase == "") { server.Connector.Authentication = null; } else { var authentication = Factory.Singleton.Resolve <IPassphraseAuthentication>(); authentication.Passphrase = rebroadcastSettings.Passphrase; server.Connector.Authentication = authentication; } } }
public void TestInitialise() { _OriginalClassFactory = Factory.TakeSnapshot(); _Server = TestUtilities.CreateMockImplementation <IRebroadcastServer>(); _Connector = new MockConnector <INetworkConnector, INetworkConnection>(); Factory.Singleton.RegisterInstance <INetworkConnector>(_Connector.Object); _Connector.Object.Authentication = null; _PassphraseAuthentication = TestUtilities.CreateMockImplementation <IPassphraseAuthentication>(); _Feeds = new List <Mock <IFeed> >(); _Listeners = new List <Mock <IListener> >(); var useVisibleFeeds = false; _FeedManager = FeedHelper.CreateMockFeedManager(_Feeds, _Listeners, useVisibleFeeds, 1, 2); _ConfigurationStorage = TestUtilities.CreateMockSingleton <IConfigurationStorage>(); _Configuration = new Configuration(); _ConfigurationStorage.Setup(r => r.Load()).Returns(_Configuration); _RebroadcastSettings = new RebroadcastSettings() { UniqueId = 22, Name = "A", Enabled = true, Port = 1000, Format = RebroadcastFormat.Passthrough, ReceiverId = 1, StaleSeconds = 3, Access = { DefaultAccess = DefaultAccess.Allow, }, IsTransmitter = false, SendIntervalMilliseconds = 1000, }; _Configuration.RebroadcastSettings.Add(_RebroadcastSettings); _Manager = Factory.Singleton.Resolve <IRebroadcastServerManager>(); }
public void RebroadcastSettings_Equals_Returns_Correct_Value() { var item1 = new RebroadcastSettings(); var item2 = new RebroadcastSettings(); Assert.AreEqual(item1, item2); item2.Enabled = !item2.Enabled; Assert.AreNotEqual(item1, item2); item2 = new RebroadcastSettings(); item2.Format = RebroadcastFormat.Port30003; Assert.AreNotEqual(item1, item2); item2 = new RebroadcastSettings(); item2.Name = "Z"; Assert.AreNotEqual(item1, item2); item2 = new RebroadcastSettings(); item2.Port = 1001; Assert.AreNotEqual(item1, item2); }
private RebroadcastSettings SetupSelectedRebroadcastSettings(RebroadcastSettings settings) { _View.Setup(v => v.SelectedRebroadcastSettings).Returns(settings); return(settings); }