public void AddingAnChoiceGeneratesAnAddChoiceMetric() { // Arrange var metricHandler = new Mock <IMetricHandler>(); IDbSet <Poll> polls = DbSetTestHelper.CreateMockDbSet <Poll>(); var contextFactory = ContextFactoryTestHelper.CreateContextFactory(polls); ManageChoiceController controller = CreateManageChoiceController(contextFactory, metricHandler.Object); Poll existingPoll = new Poll() { Choices = new List <Choice>(), UUID = Guid.NewGuid(), ManageId = Guid.NewGuid() }; polls.Add(existingPoll); ChoiceUpdate optionUpdate = new ChoiceUpdate() { Name = "New Choice" }; ManageChoiceUpdateRequest request = new ManageChoiceUpdateRequest() { Choices = new List <ChoiceUpdate>() { optionUpdate } }; // Act controller.Put(existingPoll.ManageId, request); // Assert metricHandler.Verify(m => m.HandleChoiceAddedEvent(It.Is <Choice>(o => o.Name == "New Choice"), existingPoll.UUID), Times.Once()); metricHandler.Verify(m => m.HandleChoiceDeletedEvent(It.IsAny <Choice>(), It.IsAny <Guid>()), Times.Never()); metricHandler.Verify(m => m.HandleChoiceUpdatedEvent(It.IsAny <Choice>(), It.IsAny <Guid>()), Times.Never()); }
public ColumnModelChoice() : base() { choices = new List <string> { "" }; choiceKeys = new List <string>(); updateListener = new ChoiceUpdate(this); }
public void ChoiceWithPollChoiceNumber_IsUpdated() { const string optionName = "Some Choice"; const string optionDescription = "Some Description"; const int pollChoiceNumber = 2; const string newChoiceName = "Some other option"; const string newChoiceDescription = "Some other description"; IDbSet <Poll> polls = DbSetTestHelper.CreateMockDbSet <Poll>(); var poll = new Poll() { ManageId = PollManageGuid }; IDbSet <Choice> options = DbSetTestHelper.CreateMockDbSet <Choice>(); var option = new Choice() { Name = optionName, Description = optionDescription, PollChoiceNumber = pollChoiceNumber }; poll.Choices.Add(option); options.Add(option); polls.Add(poll); IContextFactory contextFactory = ContextFactoryTestHelper.CreateContextFactory(polls, options); var request = new ManageChoiceUpdateRequest(); var optionRequest = new ChoiceUpdate() { Name = newChoiceName, Description = newChoiceDescription, ChoiceNumber = pollChoiceNumber }; request.Choices.Add(optionRequest); ManageChoiceController controller = CreateManageChoiceController(contextFactory); controller.Put(PollManageGuid, request); Assert.AreEqual(newChoiceName, options.First().Name); Assert.AreEqual(newChoiceDescription, options.First().Description); }
public ColumnModelChoice(DataSnapshot data) : base(data) { choices = new List <string> { "" }; choiceKeys = new List <string>(); this.Data = this.data; this.data.Clear(); updateListener = new ChoiceUpdate(this); dataReference = data.Child("data").Ref; dataReference.AddChildEventListener(updateListener); }
private void UpdateOptions(ManageChoiceUpdateRequest request, Poll poll, IEnumerable <int> optionsToUpdate) { foreach (int pollOptionNumber in optionsToUpdate) { Choice option = poll .Choices .Single(o => o.PollChoiceNumber == pollOptionNumber); ChoiceUpdate update = request .Choices .Single(o => o.ChoiceNumber == pollOptionNumber); option.Name = update.Name; option.Description = update.Description; _metricHandler.HandleChoiceUpdatedEvent(option, poll.UUID); } }
public void ChoiceWithUnknownPollChoiceNumber_ThrowsNotFound() { const string optionName = "Some Choice"; const string optionDescription = "Some Description"; const int pollChoiceNumber = 2; const int unknownPollChoiceNumber = 3; IDbSet <Poll> polls = DbSetTestHelper.CreateMockDbSet <Poll>(); var poll = new Poll() { ManageId = PollManageGuid }; IDbSet <Choice> options = DbSetTestHelper.CreateMockDbSet <Choice>(); var option = new Choice() { Name = optionName, Description = optionDescription, PollChoiceNumber = pollChoiceNumber }; poll.Choices.Add(option); options.Add(option); polls.Add(poll); IContextFactory contextFactory = ContextFactoryTestHelper.CreateContextFactory(polls, options); var request = new ManageChoiceUpdateRequest(); var optionRequest = new ChoiceUpdate() { Name = optionName, Description = optionDescription, ChoiceNumber = unknownPollChoiceNumber }; request.Choices.Add(optionRequest); ManageChoiceController controller = CreateManageChoiceController(contextFactory); controller.Put(PollManageGuid, request); }
public void ChoiceWithNoPollChoiceNumber_IsAddedToChoices() { const string optionName = "Some Choice"; const string optionDescription = "Some Description"; IDbSet <Poll> polls = DbSetTestHelper.CreateMockDbSet <Poll>(); polls.Add(new Poll() { ManageId = PollManageGuid }); IDbSet <Choice> options = DbSetTestHelper.CreateMockDbSet <Choice>(); IContextFactory contextFactory = ContextFactoryTestHelper.CreateContextFactory(polls, options); var request = new ManageChoiceUpdateRequest(); var optionRequest = new ChoiceUpdate() { Name = optionName, Description = optionDescription, ChoiceNumber = null }; request.Choices.Add(optionRequest); ManageChoiceController controller = CreateManageChoiceController(contextFactory); controller.Put(PollManageGuid, request); Assert.AreEqual(1, options.Count()); Assert.AreEqual(optionName, options.First().Name); Assert.AreEqual(optionDescription, options.First().Description); }
public void UpdateChoice(ChoiceUpdate choiceUpdate) { _tPClient.SendAsync(choiceUpdate); }
public void MultipleRequests() { const string optionRemoveName = "Some Choice to remove"; const string optionRemoveDescription = "Some Description to remove"; const int optionRemoveNumber = 2; const string optionUpdateName = "Some Choice to update"; const string optionUpdateDescription = "Some Description to update"; const int optionUpdateNumber = 1; const string updatedName = "An updated Name"; const string updatedDescription = "An updated Description"; const string addName = "A new option"; const string addDescription = "A new description"; IDbSet <Poll> polls = DbSetTestHelper.CreateMockDbSet <Poll>(); IDbSet <Choice> options = DbSetTestHelper.CreateMockDbSet <Choice>(); IDbSet <Ballot> ballots = DbSetTestHelper.CreateMockDbSet <Ballot>(); IDbSet <Vote> votes = DbSetTestHelper.CreateMockDbSet <Vote>(); var poll = new Poll() { ManageId = PollManageGuid }; polls.Add(poll); var optionToRemove = new Choice() { Name = optionRemoveName, Description = optionRemoveDescription, PollChoiceNumber = optionRemoveNumber }; var optionToUpdate = new Choice() { Name = optionUpdateName, Description = optionUpdateDescription, PollChoiceNumber = optionUpdateNumber }; options.Add(optionToRemove); options.Add(optionToUpdate); var ballot = new Ballot(); ballots.Add(ballot); var vote = new Vote(); votes.Add(vote); vote.Choice = optionToRemove; ballot.Votes.Add(vote); poll.Choices.Add(optionToRemove); poll.Choices.Add(optionToUpdate); IContextFactory contextFactory = ContextFactoryTestHelper.CreateContextFactory(polls, ballots, votes, options); var request = new ManageChoiceUpdateRequest(); var updateChoice = new ChoiceUpdate() { Name = updatedName, Description = updatedDescription, ChoiceNumber = optionUpdateNumber }; var addChoice = new ChoiceUpdate() { Name = addName, Description = addDescription, ChoiceNumber = null }; request.Choices.Add(updateChoice); request.Choices.Add(addChoice); ManageChoiceController controller = CreateManageChoiceController(contextFactory); controller.Put(PollManageGuid, request); Assert.AreEqual(2, poll.Choices.Count()); Assert.AreEqual(2, options.Count()); Assert.AreEqual(addName, options.First().Name); Assert.AreEqual(addDescription, options.First().Description); Assert.AreEqual(updatedName, options.Last().Name); Assert.AreEqual(updatedDescription, options.Last().Description); Assert.AreEqual(optionUpdateNumber, options.Last().PollChoiceNumber); }