Exemple #1
0
        public void SerializeGames()
        {
            FileInfo file = new FileInfo("UnimatrixeroGames.xml");
            string   xml  = File.ReadAllText(file.FullName);

            GameXmlParser parser = new GameXmlParser();
            List <Game>   games  = parser.Parse(xml).ToList();

            Assert.That(games.Count, Is.GreaterThan(0));

            DataContractSerializer serializer = new DataContractSerializer(typeof(Game), new[] { typeof(List <Game>) });
            StringBuilder          builder    = new StringBuilder();

            using (XmlWriter writer = XmlWriter.Create(builder))
            {
                serializer.WriteObject(writer, games);
            }

            string serializedGamesXml = builder.ToString();

            string solutionDirectoryPath = file.Directory.Parent.Parent.Parent.FullName;

            Console.WriteLine(solutionDirectoryPath);

            string dataTestProjectPath     = Path.Combine(solutionDirectoryPath, "SteamAchievements.Data.Tests");
            string serializedGamesFileName = Path.Combine(dataTestProjectPath, "UnimatrixeroGameEntities.xml");

            File.WriteAllText(serializedGamesFileName, serializedGamesXml);
        }
Exemple #2
0
        public void ParseValid()
        {
            string xml = File.ReadAllText("games.xml");

            GameXmlParser      parser = new GameXmlParser();
            IEnumerable <Game> games  = parser.Parse(xml);

            Assert.That(games.Any());
        }
Exemple #3
0
        public void ParseValid()
        {
            string xml = File.ReadAllText("games.xml");

            GameXmlParser      parser = new GameXmlParser();
            IEnumerable <Game> games  = parser.Parse(xml);

            Assert.That(games.Any());
            Assert.That(games.Count(game => game.PlayedRecently), Is.EqualTo(2));
        }
Exemple #4
0
        public void Issue37()
        {
            MockSteamRepository repository = new MockSteamRepository();

            repository.Achievements = GetDataAchievements().AsQueryable();
            repository.Users        =
                new List <User> {
                new User {
                    FacebookUserId = 0, SteamUserId = "Unimatrixero"
                }
            }.AsQueryable();
            repository.UserAchievements = new List <UserAchievement>().AsQueryable();

            GameXmlParser      gameXmlParser = new GameXmlParser();
            IEnumerable <Game> games         = gameXmlParser.Parse(File.ReadAllText("UnimatrixeroGames.xml"));

            AchievementManager             manager      = new AchievementManager(repository);
            IEnumerable <Data.Achievement> achievements = GetCommunityAchievements();

            // should not throw InvalidOperationException
            manager.UpdateAchievements("Unimatrixero", achievements);
        }
Exemple #5
0
        public void ParseNotValid()
        {
            GameXmlParser parser = new GameXmlParser();

            Assert.Throws <XmlException>(() => parser.Parse("asdf asdf asdf asdf"));
        }
        public void UpdateNewUserAchievements()
        {
            Mock <IAchievementManager>    achievementManagerMock = new Mock <IAchievementManager>();
            Mock <ISteamCommunityManager> communityManagerMock   = new Mock <ISteamCommunityManager>();

            // expect
            User user = new User {
                FacebookUserId = 1234, SteamUserId = "user1"
            };

            Data.User dataUser = new Data.User {
                FacebookUserId = 1234, SteamUserId = "user1"
            };
            achievementManagerMock.Setup(rep => rep.GetUser(user.FacebookUserId))
            .Returns(dataUser).Verifiable();

            AchievementXmlParser   achievementXmlParser = new AchievementXmlParser();
            List <UserAchievement> userAchievements     =
                achievementXmlParser.ParseClosed(File.ReadAllText("cssAchievements.xml")).ToList();

            userAchievements.ForEach(
                userAchievement =>
                userAchievement.Game =
                    new Game
            {
                Id       = 240,
                ImageUrl =
                    "http://media.steampowered.com/steamcommunity/public/images/apps/10/af890f848dd606ac2fd4415de3c3f5e7a66fcb9f.jpg",
                Name           = "Counter-Strike: Source",
                PlayedRecently = true,
                StatsUrl       =
                    String.Format("http://steamcommunity.com/id/{0}/games/?xml=1", user.SteamUserId),
                StoreUrl = "http://store.steampowered.com/app/10"
            });

            communityManagerMock.Setup(rep => rep.GetAchievements(user.SteamUserId))
            .Returns(new List <UserAchievement>()).Verifiable();

            achievementManagerMock.Setup(rep => rep.GetUser(user.SteamUserId))
            .Returns(dataUser).Verifiable();
            achievementManagerMock.Setup(rep => rep.UpdateAchievements(It.IsAny <IEnumerable <Data.UserAchievement> >()))
            .Returns(5).Verifiable();

            ICollection <Game> games = new GameXmlParser().Parse(File.ReadAllText("games.xml"));

            communityManagerMock.Setup(rep => rep.GetGames(user.SteamUserId))
            .Returns(games).Verifiable();

            Achievement[] dataAchievements = new[] { new Achievement {
                                                         Description = "x", GameId = 1, Id = 1,
                                                     } };
            achievementManagerMock.Setup(
                rep => rep.GetUnpublishedAchievements(user.SteamUserId, DateTime.UtcNow.Date.AddDays(-2)))
            .Returns(dataAchievements).Verifiable();
            achievementManagerMock.Setup(
                rep =>
                rep.UpdateHidden(user.SteamUserId, It.IsAny <IEnumerable <int> >()))
            .Verifiable();

            // execute
            IAchievementService service =
                new AchievementService(achievementManagerMock.Object, communityManagerMock.Object);

            service.UpdateNewUserAchievements(user);

            // verify
            achievementManagerMock.Verify();
            communityManagerMock.Verify();
        }