コード例 #1
0
        public override void TestParse()
        {
            foreach (var file in _testBytes)
            {
                var stats = LegacyGameStats.Parse(file.Value, file.Key);
                Assert.IsNotNull(stats);
                Assert.IsNotNull(stats.Stats);
                Assert.IsNotNull(stats.Stats.Summary);

                var inner   = stats.Stats;
                var summary = inner.Summary;

                Assert.AreEqual(false, inner.CyberCafe);
                Assert.AreEqual(95, inner.DxLevel);
                Assert.AreEqual(0, inner.SecondsToCompleteGame);
                Assert.AreEqual(false, inner.Steam);

                Assert.AreEqual(0, summary.Captions);
                Assert.AreEqual(0, summary.Commentary);
                Assert.AreEqual(false, summary.CyberCafe);
                Assert.AreEqual(0, summary.Hdr);
                Assert.AreEqual(false, summary.Steam);

                switch (file.Key)
                {
                case "ep2":
                    Assert.AreEqual(11, inner.Hl2ChapterUnlocked);
                    Assert.AreEqual(10, inner.MapTotals.Count);
                    Assert.AreEqual(39, summary.Count);
                    Assert.AreEqual(5, summary.Deaths);
                    Assert.AreEqual(4354, summary.Seconds);
                    break;

                case "portal":
                    Assert.AreEqual(0, inner.Hl2ChapterUnlocked);
                    Assert.AreEqual(6, inner.MapTotals.Count);
                    Assert.AreEqual(3, summary.Count);
                    Assert.AreEqual(0, summary.Deaths);
                    Assert.AreEqual(1087, summary.Seconds);
                    break;

                default:
                    break;
                }



                // Now try to serialise them
                using (var stream = new MemoryStream())
                {
                    using (var writer = new BinaryWriter(stream))
                        stats.SaveToBuffer(writer);
                    var data = stream.ToArray();

                    // Ensure bytes after match exactly our original bytes
                    Assert.IsTrue(file.Value.SequenceEqual(data), $"Original bytes do not match serialised bytes for type \"{file.Key}\".");
                }
            }
        }
コード例 #2
0
 public void Behaviour()
 {
     Assert.ThrowsException <InvalidOperationException>(() => { LegacyGameStats.Parse(new byte[0], "test123"); }); // invalid type
     Assert.ThrowsException <TargetInvocationException>(() => { LegacyGameStats.Parse(new byte[0], "ep2"); });     // empty byte array
 }