ABsoluteMaybe.Tests.Persistence.XmlExperimentCommandsTests.ConvertOnlyUpdatesParticipantRecordIfParticipantHasntYetConverted C# (CSharp) Méthode

ConvertOnlyUpdatesParticipantRecordIfParticipantHasntYetConverted() private méthode

        public void ConvertOnlyUpdatesParticipantRecordIfParticipantHasntYetConverted()
        {
            //arrange
            var firstTimestamp = new DateTime(2000, 1, 1);
            var secondTimestamp = new DateTime(2001, 1, 1);
            _commands.Reset();
            _commands.UtcNowFactory = () => firstTimestamp;
            const string experimentName = "Troy's Experiment";
            const string assignedOption = "Foo";
            const string userId = "USER_123";
            _commands.GetOrCreateExperiment(experimentName, new[]{ "Foo", "Bar" });
            _commands.GetOrCreateParticipationRecord(experimentName, () => assignedOption, userId);
            _commands.Convert(experimentName, userId);

            //act
            _commands.UtcNowFactory = () => secondTimestamp;
            _commands.Convert(experimentName, userId);

            //assert
            var xml = XDocument.Parse(_commands.SavedXml);
            var exp = xml.Root.Elements("Experiment").Single();

            var record = exp.Element("Participants").Elements("Participant").Single();

            var convertAtt = record.Attribute("HasConverted");
            convertAtt.ShouldNotBeNull();
            bool.Parse(convertAtt.Value).ShouldBeTrue();

            var dateConvertAtt = record.Attribute("DateConverted");
            dateConvertAtt.ShouldNotBeNull();
            DateTime.Parse(dateConvertAtt.Value).ShouldEqual(firstTimestamp);
        }