public VoteDummyModule() : base("api/votingdummy") { this.Get["/putvote", true] = (_, cancel) => { return Task.Run<dynamic>(() => { var username = "******"; var level = Level.AC; var votingService = new VotingService(db); votingService.AssertUser(username, level); var trackId = 137943951; var points = 2; //votingService.CastVote(username, trackId, points); //var votes = votingService.GetVotesForTrack(trackId); var votes = votingService.GetVotesForUser(username); //return Response.AsJson("vote is posted", HttpStatusCode.OK); return Response.AsJson(votes, HttpStatusCode.OK); }); }; }
public void CastVote_WithNonExistentUser_ThrowsException() { // Arrange var couchDbMock = new Mock<ICouchDBService>(); couchDbMock.Setup(c => c.FindByUsername<User>(It.IsAny<string>())).Returns(new List<User>()); // Act var votingService = new VotingService(couchDbMock.Object); votingService.CastVote("*****@*****.**", 1, 2); }
public void CastVote_WithValidUser_SetsVote() { // Arrange var couchDbMock = new Mock<ICouchDBService>(); couchDbMock.Setup(c => c.FindByUsername<User>(It.IsAny<string>())).Returns(new[] { new User { Username = "******" } }); couchDbMock.Setup(c => c.FindByUsername<Vote>(It.IsAny<string>())).Returns(new List<Vote>()); // Act var votingService = new VotingService(couchDbMock.Object); votingService.CastVote("*****@*****.**", 1, 2); // Assert couchDbMock.Verify(c => c.Set<Vote>(It.IsAny<Vote>()), Times.Once); }
public void GetVoterTurnout_WithMatchingUsersAndVotes_CalculatesCorrectTurnout() { // Arrange - create 5 distinct users, both A and AC, out of which one user from each level has // voted (which should give a turnout of 33.3% for A and 50% for AC). var couchDbMock = new Mock<ICouchDBService>(); couchDbMock.Setup(c => c.FindByLevel<User>(It.Is<Level>(l => l == Level.A))).Returns(new[] { new User { Username = "******", Level = Level.A }, new User { Username = "******", Level = Level.A }, new User { Username = "******", Level = Level.A } }); couchDbMock.Setup(c => c.FindByUsername<Vote>(It.Is<string>(n => n == "*****@*****.**"))).Returns(new[] { new Vote { Username = "******" }, new Vote { Username = "******" }, new Vote { Username = "******" } }); couchDbMock.Setup(c => c.FindByLevel<User>(It.Is<Level>(l => l == Level.AC))).Returns(new[] { new User { Username = "******", Level = Level.AC }, new User { Username = "******", Level = Level.AC } }); couchDbMock.Setup(c => c.FindByUsername<Vote>(It.Is<string>(n => n == "*****@*****.**"))).Returns(new[] { new Vote { Username = "******" }, new Vote { Username = "******" }, new Vote { Username = "******" } }); // Act var votingService = new VotingService(couchDbMock.Object); var turnouts = votingService.GetVoterTurnout(); // Assert Assert.AreEqual(33.3, turnouts[Level.A]); Assert.AreEqual(50.0, turnouts[Level.AC]); }
public void UserCanVote_UserWithVotes_ReturnsFalse() { // Arrange var couchDbMock = new Mock<ICouchDBService>(); couchDbMock.Setup(c => c.FindByUsername<Vote>(It.IsAny<string>())).Returns(new [] { new Vote { Username = "******" }, new Vote { Username = "******" }, new Vote { Username = "******" } }); // Act var votingService = new VotingService(couchDbMock.Object); var canVote = votingService.UserCanVote("*****@*****.**"); // Assert Assert.IsFalse(canVote); }
public void GetVoterTurnout_WithNoVotes_ReturnsZeroTurnout() { // Arrange var couchDbMock = new Mock<ICouchDBService>(); couchDbMock.Setup(c => c.FindByLevel<User>(It.Is<Level>(l => l == Level.A))).Returns(new[] { new User { Username = "******", Level = Level.A }, new User { Username = "******", Level = Level.A }, new User { Username = "******", Level = Level.A } }); // Act var votingService = new VotingService(couchDbMock.Object); var turnouts = votingService.GetVoterTurnout(); // Assert Assert.AreEqual(0, turnouts[Level.A]); }
public void GetVoterTurnout_WithNoMatchingUsers_ReturnsEmptyResult() { // Arrange var couchDbMock = new Mock<ICouchDBService>(); couchDbMock.Setup(c => c.FindByLevel<User>(It.IsAny<Level>())).Returns(new List<User>()); // Act var votingService = new VotingService(couchDbMock.Object); var turnouts = votingService.GetVoterTurnout(); // Assert Assert.AreEqual(0, turnouts.Keys.Count); }