public void AbleToParse_StrictHidatoScoreFormat()
        {
            string text = "Hidato: 26360 (2100, 10000, 1080, 2x) 2:00";

            var parser = new HidatoScoreParser();
            var output = parser.Parse(text);

            var expectedValue = new HidatoScore
                                {
                                    TotalScore = 26360,
                                    TileScore = 2100,
                                    PerfectBonus = 10000,
                                    TimeBonus = 1080,
                                    Multiplier = 2,
                                    TimeInSeconds = 120,
                                    Date = DateTime.UtcNow.Date
                                };

            Assert.True(output.IsSuccess);
            Assert.Empty(output.ErrorMessages);
            Assert.Empty(output.Exceptions);

            Assert.Equal(expectedValue.TotalScore, output.Value.TotalScore);
            Assert.Equal(expectedValue.TileScore, output.Value.TileScore);
            Assert.Equal(expectedValue.PerfectBonus, output.Value.PerfectBonus);
            Assert.Equal(expectedValue.TimeBonus, output.Value.TimeBonus);
            Assert.Equal(expectedValue.Multiplier, output.Value.Multiplier);
            Assert.Equal(expectedValue.TimeInSeconds, output.Value.TimeInSeconds);
            Assert.Equal(expectedValue.Date, output.Value.Date);
        }
        public void UnableToParse_NoLineBeginsWithHidato()
        {
            string text = "This is just a normal sentence.";

            var parser = new HidatoScoreParser();
            var output = parser.Parse(text);

            Assert.False(output.IsSuccess);
            Assert.Contains("Unable to parse the Hidato score", output.ErrorMessages);
        }
        public void UnableToParse_EmptyText()
        {
            string text = string.Empty;

            var parser = new HidatoScoreParser();
            var output = parser.Parse(text);

            Assert.False(output.IsSuccess);
            Assert.Contains("Unable to parse the Hidato score", output.ErrorMessages);
        }