public void AreNamesOrderedByCountDescAndThenNames() { List <User> users = new List <User>(); users.Add(new User { FirstName = "apple", LastName = "pie" }); users.Add(new User { FirstName = "apple", LastName = "juice" }); users.Add(new User { FirstName = "brown", LastName = "bread" }); users.Add(new User { FirstName = "white", LastName = "bread" }); users.Add(new User { FirstName = "xxx", LastName = "xxx" }); users.Add(new User { FirstName = "xxx", LastName = "bread" }); var response = User.GetOrderedNamesCount(users); Assert.AreEqual(response[0].Key, "bread"); Assert.AreEqual(response[0].Value, 3); Assert.AreEqual(response[1].Key, "xxx"); Assert.AreEqual(response[1].Value, 3); Assert.AreEqual(response[2].Key, "apple"); Assert.AreEqual(response[2].Value, 2); Assert.AreEqual(response[3].Key, "brown"); Assert.AreEqual(response[3].Value, 1); Assert.AreEqual(response[4].Key, "juice"); Assert.AreEqual(response[4].Value, 1); Assert.AreEqual(response[5].Key, "pie"); Assert.AreEqual(response[5].Value, 1); Assert.AreEqual(response[6].Key, "white"); Assert.AreEqual(response[6].Value, 1); }