コード例 #1
0
        public void WithBuildMetaData_works_on_SVersion_and_CSVersion()
        {
            SVersion sv   = SVersion.TryParse("1.0.0-not.a.CSemVer.Version");
            SVersion svc  = SVersion.TryParse("1.0.0-alpha");
            SVersion svnc = SVersion.TryParse("1.0.0-pre", handleCSVersion: false);

            Assert.That(sv, Is.Not.AssignableTo <CSVersion>());
            Assert.That(sv.AsCSVersion, Is.Null);

            Assert.That(svc, Is.AssignableTo <CSVersion>());
            Assert.That(svc.AsCSVersion, Is.SameAs(svc));

            Assert.That(svnc, Is.Not.AssignableTo <CSVersion>());
            Assert.That(svnc.AsCSVersion, Is.Not.Null);

            SVersion svB = sv.WithBuildMetaData("Test");

            Assert.That(svB, Is.Not.AssignableTo <CSVersion>());
            Assert.That(svB.AsCSVersion, Is.Null);
            Assert.That(svB.NormalizedTextWithBuildMetaData, Is.EqualTo("1.0.0-not.a.CSemVer.Version+Test"));

            SVersion svcB = svc.WithBuildMetaData("Test");

            Assert.That(svcB, Is.AssignableTo <CSVersion>());
            Assert.That(svcB.AsCSVersion, Is.SameAs(svcB));
            Assert.That(svcB.NormalizedTextWithBuildMetaData, Is.EqualTo("1.0.0-alpha+Test"));

            SVersion svncB = svnc.WithBuildMetaData("Test");

            Assert.That(svncB, Is.Not.AssignableTo <CSVersion>());
            Assert.That(svncB.AsCSVersion, Is.Not.Null);
            Assert.That(svncB.NormalizedTextWithBuildMetaData, Is.EqualTo("1.0.0-pre+Test"));
            Assert.That(svncB.AsCSVersion.NormalizedTextWithBuildMetaData, Is.EqualTo("1.0.0-prerelease+Test"));
        }