public void DotNetVersion_VersionAndProfiles_Built()
        {
            // Fixture setup...
            var version = new Version("3.0");
            var profiles = DotNetProfiles.Client;
            var dotNetVersion = new DotNetVersion(version);
            var builder = new DotNetVersionBuilder
            {
                Version = version,
                Profiles = profiles
            };

            // Exercise SUT...
            var builtVersion = builder.DotNetVersion;

            // Verify SUT...
            Assert.That(builtVersion.Version, Is.SameAs(version));
            Assert.That(
                builtVersion.ServicePacks,
                Is.EqualTo(dotNetVersion.ServicePacks)
            );
            Assert.That(builtVersion.Profiles, Is.EqualTo(profiles));

            // Fixture teardown by GC...
        }
        public void CtorStoresArgs()
        {
            // Fixture setup...
            var version = new Version();
            var packs = new Version[0];
            var profiles = DotNetProfiles.Full;

            // Exercise and SUT...
            var netVersion = new DotNetVersion(version, packs, profiles);

            // Verify SUT...
            Assert.That(netVersion.Version, Is.EqualTo(version));
            Assert.That(netVersion.ServicePacks, Is.EqualTo(packs));
            Assert.That(netVersion.Profiles, Is.EqualTo(profiles));

            // Fixture teardown by GC...
        }
        public void DotNetVersion_VersionAndServicePacks_Built()
        {
            // Fixture setup...
            var version = new Version("2.0");
            var servicePacks = new[] { new Version("1.0") };
            var dotNetVersion = new DotNetVersion(version);
            var builder = new DotNetVersionBuilder
            {
                Version = version,
                ServicePacks = servicePacks
            };

            // Exercise SUT...
            var builtVersion = builder.DotNetVersion;

            // Verify SUT...
            Assert.That(builtVersion.Version, Is.SameAs(version));
            Assert.That(builtVersion.ServicePacks, Is.SameAs(servicePacks));

            // Fixture teardown by GC...
        }
        public void Detect_FullProfileMatch_Version()
        {
            // Fixture setup...
            const string keyName = "subKey";
            const string valueName = "valueName";
            var value = 1;
            const bool fullProfileDetected = true;

            var expectedVersion = new DotNetVersion(new Version("1.0"));
            var builder = MockRepository
                .GeneratePartialMock<DotNetVersionBuilder>();
            builder.Expect(b => b.DotNetVersion).Return(expectedVersion);

            var spec = MockRepository
                .GeneratePartialMock<RegistryDetection>();
            spec.Expect(s => s.Validate());
            spec.Expect(s => s.FullProfileRegistryKeyName).Return(keyName);
            spec.Expect(s => s.FullProfileValueName).Return(valueName);
            spec.Expect(s => s.FullProfileValue).Return(value);
            spec.Expect(s => s.FullProfileDetected = fullProfileDetected);
            spec.Expect(s => s.ClientProfileDetected = true);
            spec.Expect(s => s.VersionBuilder).Return(builder);

            var key = MockRepository.GenerateMock<RegistryKeyBase>(
                RegistryHive.PerformanceData
            );
            key
                .Expect(d => d.MatchRegistryValue(keyName, valueName, value))
                .Return(fullProfileDetected);

            // Exercise SUT...
            var actualVersion = spec.Detect(key);

            // Verify SUT...
            spec.VerifyAllExpectations();
            key.VerifyAllExpectations();
            Assert.That(actualVersion, Is.SameAs(expectedVersion));

            // Fixture teardown by GC...
        }
        public void WriteAll()
        {
            // Fixture setup...
            var version = new DotNetVersion(new Version("1.0"));
            var versions = new[] { version };

            var detector = MockRepository.GenerateMock<IDetector>();
            detector.Expect(d => d.Versions).Return(versions);

            var writer = MockRepository
                .GeneratePartialMock<DotNetVersionWriter>(detector);
            writer.Expect(w => w.Write(version));

            // Exercise SUT...
            writer.WriteAll();

            // Verify SUT...
            detector.VerifyAllExpectations();
            writer.VerifyAllExpectations();

            // Fixture teardown by GC...
        }
        public void DotNetVersion_VersionSpsAndProfiles_Built()
        {
            // Fixture setup...
            var version = new Version("4.0");
            var servicePacks = new[] {
                new Version("1.0"),
                new Version("2.0")
            };
            var profiles = DotNetProfiles.Full;
            var dotNetVersion = new DotNetVersion(version);
            var builder = new DotNetVersionBuilder
            {
                Version = version,
                ServicePacks = servicePacks,
                Profiles = profiles
            };

            // Exercise SUT...
            var builtVersion = builder.DotNetVersion;

            // Verify SUT...
            Assert.That(builtVersion.Version, Is.SameAs(version));
            Assert.That(builtVersion.ServicePacks, Is.SameAs(servicePacks));
            Assert.That(builtVersion.Profiles, Is.EqualTo(profiles));

            // Fixture teardown by GC...
        }
示例#7
0
        public void MaxDotNetVersion_OneVersion_ThatOne()
        {
            // Fixture setup...
            var version = new DotNetVersion(new Version("1.0"));
            var detector = MockRepository.GenerateMock<IDetector>();
            detector.Expect(d => d.Versions).Return(new[] { version });
            Detector.Current = detector;

            // Exercise SUT...
            var maxDotNetVersion = Detector.MaxDotNetVersion;

            // Verify SUT...
            Assert.That(maxDotNetVersion, Is.EqualTo(version));

            // Fixture teardown...
            Detector.Current = null;
        }
示例#8
0
        public void VersionsDelegatesToCurrentDetector()
        {
            // Fixture setup...
            var expectedVersions = new DotNetVersion[0];
            var detector = MockRepository.GenerateMock<IDetector>();
            detector.Expect(d => d.Versions).Return(expectedVersions);
            Detector.Current = detector;

            // Exercise SUT...
            var actualVersions = Detector.Versions;

            // Verify SUT...
            detector.VerifyAllExpectations();
            Assert.That(actualVersions, Is.EqualTo(expectedVersions));

            // Fixture teardown...
            Detector.Current = null;
        }
示例#9
0
 public virtual void Write(DotNetVersion version)
 {
     Console.WriteLine(version.ToString());
 }
        public void Detect_GetServicePakcsAndProfilesDelegate_Overrides()
        {
            // Fixture setup...
            var clientRegKeyName = "clientRegKeyName";
            var expectedServicePacks = new Version[0];
            var expectedProfiles = DotNetProfiles.Client;
            var version = new DotNetVersion(new Version("1.0"));

            var builder = MockRepository
                .GeneratePartialMock<DotNetVersionBuilder>();
            builder.Expect(b => b.ServicePacks = expectedServicePacks);
            builder.Expect(b => b.Profiles = expectedProfiles);
            builder.Expect(b => b.DotNetVersion).Return(version);

            var key = MockRepository.GeneratePartialMock<RegistryKeyBase>(
                RegistryHive.LocalMachine
            );
            key
                .Expect(k => k.MatchRegistryValue(
                    clientRegKeyName,
                    null,
                    null
                ))
                .Return(true);

            var detection = MockRepository
                .GeneratePartialMock<RegistryDetection>();
            detection.ClientProfileRegistryKeyName = clientRegKeyName;
            detection.VersionBuilder = builder;
            detection.Expect(d => d.Validate());
            detection
                .Expect(d => d.GetServicePacksDelegate)
                .Return((k, d) =>
                {
                    Assert.That(k, Is.SameAs(key));
                    Assert.That(d, Is.SameAs(detection));
                    return expectedServicePacks;
                })
                .Repeat
                .Twice();
            detection
                .Expect(d => d.GetProfilesDelegate)
                .Return((k, d) =>
                {
                    Assert.That(k, Is.SameAs(key));
                    Assert.That(d, Is.SameAs(detection));
                    return expectedProfiles;
                })
                .Repeat
                .Twice();

            // Exercise SUT...
            var actualVersion = detection.Detect(key);

            // Verify SUT...
            detection.VerifyAllExpectations();
            builder.VerifyAllExpectations();
            Assert.That(actualVersion, Is.EqualTo(version));

            // Fixture teardown by GC...
        }
示例#11
0
        public void CtorWithoutPacksAndProfilesDefaults()
        {
            // Fixture setup...

            // Exercise SUT...
            var version = new DotNetVersion(new Version());

            // Verify SUT...
            Assert.That(
                version.ServicePacks,
                Is.InstanceOf<IEnumerable<Version>>()
            );
            Assert.That(version.ServicePacks.Count(), Is.EqualTo(0));
            Assert.That(
                version.Profiles,
                Is.EqualTo(DotNetProfiles.ClientFull)
            );

            // Fixture teardown by GC...
        }
示例#12
0
        public void ToStringNiceRepresentation(
            string v,
            string sp,
            DotNetProfiles p,
            string res
            )
        {
            // Fixture setup...

            // Exercise SUT...
            var version = new DotNetVersion(
                new Version(v),
                string.IsNullOrWhiteSpace(sp) ?
                    new Version[0] :
                    sp.Split(new[] { ',' }).Select(spv => new Version(spv)),
                p
            );

            // Verify SUT...
            Assert.That(version.ToString(), Is.EqualTo(res));

            // Fixture teardown by GC...
        }
示例#13
0
        public void CtorWithoutProfileDefaultsToAllProfiles()
        {
            // Fixture setup...

            // Exercise SUT...
            var version = new DotNetVersion(new Version(), new Version[0]);

            // Verify SUT...
            Assert.That(
                version.Profiles,
                Is.EqualTo(DotNetProfiles.ClientFull)
            );

            // Fixture teardown by GC...
        }