public void Reconfigures_Groups_When_Options_Change(string group, int priority, int slots, QueueStrategy strategy) { var options = new Options() { Groups = new Options.GroupsOptions() { UserDefined = new Dictionary <string, Options.GroupsOptions.UserDefinedOptions>() { { group, new Options.GroupsOptions.UserDefinedOptions() { Upload = new Options.GroupsOptions.UploadOptions() { Priority = priority, Slots = slots, Strategy = strategy.ToString(), } } }, } } }; // do not pass options; init with defaults var(queue, mocks) = GetFixture(); var groups = queue.GetProperty <Dictionary <string, UploadGroup> >("Groups"); // user defined group does not exist Assert.False(groups.ContainsKey(group)); // reconfigure mocks.OptionsMonitor.RaiseOnChange(options); // get the new copy groups = queue.GetProperty <Dictionary <string, UploadGroup> >("Groups"); Assert.True(groups.ContainsKey(group)); var p = groups[group]; Assert.Equal(group, p.Name); Assert.Equal(priority, p.Priority); Assert.Equal(slots, p.Slots); Assert.Equal(0, p.UsedSlots); Assert.Equal(strategy, p.Strategy); }
public void Instantiates_With_Expected_Leecher_Group_Options(int priority, int slots, QueueStrategy strategy) { var(queue, _) = GetFixture(new Options() { Groups = new Options.GroupsOptions() { Leechers = new Options.GroupsOptions.LeecherOptions() { Thresholds = new Options.GroupsOptions.ThresholdOptions(), Upload = new Options.GroupsOptions.UploadOptions() { Priority = priority, Slots = slots, Strategy = strategy.ToString(), } } } }); var groups = queue.GetProperty <Dictionary <string, UploadGroup> >("Groups"); var p = groups[Application.LeecherGroup]; Assert.Equal(Application.LeecherGroup, p.Name); Assert.Equal(priority, p.Priority); Assert.Equal(slots, p.Slots); Assert.Equal(0, p.UsedSlots); Assert.Equal(strategy, p.Strategy); }
public void Instantiates_With_Expected_User_Defined_Group_Options(string group1, int priority1, int slots1, QueueStrategy strategy1, string group2, int priority2, int slots2, QueueStrategy strategy2) { var(queue, _) = GetFixture(new Options() { Groups = new Options.GroupsOptions() { UserDefined = new Dictionary <string, Options.GroupsOptions.UserDefinedOptions>() { { group1, new Options.GroupsOptions.UserDefinedOptions() { Upload = new Options.GroupsOptions.UploadOptions() { Priority = priority1, Slots = slots1, Strategy = strategy1.ToString(), } } }, { group2, new Options.GroupsOptions.UserDefinedOptions() { Upload = new Options.GroupsOptions.UploadOptions() { Priority = priority2, Slots = slots2, Strategy = strategy2.ToString(), } } } } } }); var groups = queue.GetProperty <Dictionary <string, UploadGroup> >("Groups"); var p = groups[group1]; Assert.Equal(group1, p.Name); Assert.Equal(priority1, p.Priority); Assert.Equal(slots1, p.Slots); Assert.Equal(0, p.UsedSlots); Assert.Equal(strategy1, p.Strategy); p = groups[group2]; Assert.Equal(group2, p.Name); Assert.Equal(priority2, p.Priority); Assert.Equal(slots2, p.Slots); Assert.Equal(0, p.UsedSlots); Assert.Equal(strategy2, p.Strategy); }