Example #1
0
        public void NotSignedLicenseIsRejected()
        {
            var license        = CreateLicenseFromNewContact();
            var encodedLicense = LicenseWriter.ToString(license);

            LicenseReader.FromString(encodedLicense.Split('.').First());
        }
        public void StandardLicenseTest()
        {
            Dictionary <string, string> values = StandardLicenseBuilder.Build("to-me", null, "*****@*****.**", "00200", 4);
            string licenseFolder = System.IO.Path.GetTempPath();
            string fileName      = "UTTest.lic";
            string filePath      = System.IO.Path.Combine(licenseFolder, fileName);

            using (System.IO.Stream fileStream = new System.IO.FileStream(filePath, FileMode.Create))
            {
                LicenseWriter.Write(values, new TestSigner(), fileStream);
            }
            IStandardLicense license = new TestLicense();

            Assert.That(license.Status, Is.EqualTo(LicenseStatus.NotLoaded));
            license.Load(licenseFolder);
            Assert.That(license.Status, Is.EqualTo(LicenseStatus.Active));
            Assert.That(license.LicensedTo, Is.EqualTo("to-me"), "wrong licensedto");
            Assert.That(license.LicenseTitle, Is.EqualTo("Test License"), "wrong license title");
            Assert.That(license.ExpirationDate, Is.Null, "Expiration date is not null");
            Assert.That(license.AttributeSummary, Is.EqualTo("Attribs"), "wrong attribs");
            Assert.That(license.SerialNumber, Is.EqualTo("00200"), "wrong serial number");
            Assert.That(license.EmailAddress, Is.EqualTo("*****@*****.**"), "wrong email address");
            Assert.That(license.LicenseVersion, Is.EqualTo(4), "wrong license version");
            Assert.That(license.Values[StandardLicenseBuilder.EmailAddressKey], Is.EqualTo("*****@*****.**"), "bad dictionary");
        }
Example #3
0
        public void CanReadValidLicense()
        {
            IsValidIfLocalLicenseDoesNotAlreadyExist();

            // Assuming test environment can write in one of folders license file may be.
            using (var path = new TemporaryFile(LicenseManager.GetLicenseFilePath()))
            {
                // In test environment there isn't license file/storage then this test must fail.
                // After this we must discard cached (and empty) license to load the newly created one.
                Assert.IsNull(LicenseManager.License);
                Assert.IsFalse(LicenseManager.IsLicenseValid);

                LicenseManager.Renew();

                // Now we prepare a fake license file to check few basics in
                // LicenseManager class.
                var contact = ContactFactory.Create <Contact>();
                var license = LicenseFactory.Create <License>(contact);
                license.Features.Add((int)Feature.Example1, 1);

                LicenseWriter.ToFile(path, license);

                Assert.IsTrue(LicenseManager.IsLicenseValid);
                Assert.IsNotNull(LicenseManager.License);
                Assert.AreEqual(LicenseManager.License.Id, license.Id);
                Assert.IsTrue(LicenseManager.IsFeatureAvailable(Feature.Example1));
            }
        }
Example #4
0
 private static License SaveAndReloadFromDisk(License license)
 {
     using (var path = new TemporaryFile())
     {
         LicenseWriter.ToFile(path, license);
         return(LicenseReader.FromFile(path));
     }
 }
Example #5
0
        public void LicenseWriter_ReadAgreementStateAgreementTrue_ReadsStateCorrectly()
        {
            var reader = new FakeLicenseReader();

            reader.multiple = true;
            reader.state    = true;

            LicenseWriter writer = new LicenseWriter(reader);

            Assert.IsTrue(writer.ReadAgreementState());
        }
        public void LicensesViewModel_CheckboxStateChanged_ChangesButtonState()
        {
            LicenseWriter     writer = new LicenseWriter(new FakeLicenseReader());
            LicensesViewModel model  = new LicensesViewModel(writer);

            Assert.IsFalse(model.CommandAcceptEnabled);

            model.CheckboxStateChangedCommand.Execute(this);

            Assert.IsTrue(model.CommandAcceptEnabled);
        }
Example #7
0
        public void TamperedLicenseIsRejected()
        {
            var license        = CreateLicenseFromNewContact();
            var encodedLicense = new StringBuilder(LicenseWriter.ToString(license));

            encodedLicense[0] = 'A'; // I'd assume we dont already have this sequence...
            encodedLicense[1] = 'B';
            encodedLicense[2] = 'C';
            encodedLicense[3] = 'D';

            LicenseReader.FromString(encodedLicense.ToString());
        }
Example #8
0
        /// <summary>
        /// This is the constructor for the LicensesViewModel
        /// </summary>
        public LicensesViewModel(LicenseWriter Writer)
        {
            CommandAcceptEnabled         = false;
            _checkboxStateChangedCommand = new DelegateCommand(checkboxStateChanged);

            writer = Writer;

            Parallel.ForEach(LicenseManager.Licenses, s =>
            {
                LicensesText += s;
            });
        }
        public void LicensesViewModel_SaveAcceptAgreement_SavesAgreement()
        {
            LicenseWriter     writer = new LicenseWriter(new FakeLicenseReader());
            LicensesViewModel model  = new LicensesViewModel(writer);

            LicenseHolder.AcceptedLicense = false;

            model.CheckboxStateChangedCommand.Execute(this);
            model.SaveAcceptAgreement();

            Assert.IsTrue(LicenseHolder.AcceptedLicense);
        }
Example #10
0
        public void ValidForMinorHardwareChanges()
        {
            using (var temp = new TemporaryFile())
            {
                var contact = ContactFactory.Create <ContactForSlightlyChangedHardware>();
                var license = LicenseFactory.Create <License>(contact);

                LicenseWriter.ToFile(temp, license);

                license = LicenseReader.FromFile <LicenseWithSlightlyChangedHardware, IniLicenseTextConverter <LicenseWithSlightlyChangedHardware> >(temp);
                Assert.IsTrue(license.IsValid());
            }
        }
Example #11
0
        public void SelfIssuedLicense()
        {
            using (var temp = new TemporaryFile())
            {
                var contact = ContactFactory.Create <Contact>();
                var license = LicenseFactory.Create <License>(contact);

                LicenseWriter.ToFile(temp, license);

                license = LicenseReader.FromFile(temp);
                Assert.IsTrue(license.IsValid());
            }
        }
Example #12
0
        public void InvalidIfHardwareConfigurationChanged()
        {
            using (var temp = new TemporaryFile())
            {
                var contact = ContactFactory.Create <Contact>();
                var license = LicenseFactory.Create <License>(contact);

                LicenseWriter.ToFile(temp, license);

                license = LicenseReader.FromFile <LicenseWithChangedHardware, IniLicenseTextConverter <LicenseWithChangedHardware> >(temp);
                Assert.IsFalse(license.IsValid());
            }
        }
Example #13
0
        public void LicenseWriter_ReadAgreementStateAgreementTrue_UpdatesStateInManagerCorrectly()
        {
            LicenseManager.LicensesAccepted = false;

            var reader = new FakeLicenseReader();

            reader.multiple = true;
            reader.state    = true;

            LicenseWriter writer = new LicenseWriter(reader);

            writer.ReadAgreementState();

            Assert.IsTrue(LicenseManager.LicensesAccepted);
        }
        public void LicenseValid()
        {
            Dictionary <string, string> values = new Dictionary <string, string>();

            values.Add("Animal1", "Cat");
            values.Add("Animal2", "Winged Horse");
            MemoryStream licenseStream = new MemoryStream();

            LicenseWriter.Write(values, new TestSigner(), licenseStream);
            licenseStream.Position = 0;
            Dictionary <string, string> decodedValues = LicenseReader.Read(licenseStream, new TestValidator());

            Assert.That(decodedValues.Count, Is.EqualTo(2), "Wrong number of license values");
            Assert.That(decodedValues["Animal1"], Is.EqualTo("Cat"), "Animal1 should have been Cat");
            Assert.That(decodedValues["Animal2"], Is.EqualTo("Winged Horse"), "Animal2 should have been Winged Horse");
        }
        public void StandardLicenseNotExpired()
        {
            Dictionary <string, string> values = StandardLicenseBuilder.Build("to-me", DateTime.Today.AddDays(1.0D), "*****@*****.**", "00200", 4);
            string licenseFolder = System.IO.Path.GetTempPath();
            string fileName      = "UTTest.lic";
            string filePath      = System.IO.Path.Combine(licenseFolder, fileName);

            using (System.IO.Stream fileStream = new System.IO.FileStream(filePath, FileMode.Create))
            {
                LicenseWriter.Write(values, new TestSigner(), fileStream);
            }
            IStandardLicense license = new TestLicense();

            Assert.That(license.Status, Is.EqualTo(LicenseStatus.NotLoaded));
            license.Load(licenseFolder);
            Assert.That(license.Status, Is.EqualTo(LicenseStatus.Active));
            Assert.That(license.LicensedTo, Is.EqualTo("to-me"), "wrong licensedto");
            Assert.That(license.LicenseTitle, Is.EqualTo("Test License"), "wrong license title");
        }
        public void LicensesViewModel_SaveAcceptAgreement_SavesAgreementToFile()
        {
            var               reader = new FakeLicenseReader();
            LicenseWriter     writer = new LicenseWriter(reader);
            LicensesViewModel model  = new LicensesViewModel(writer);

            LicenseHolder.AcceptedLicense = false;

            model.CheckboxStateChangedCommand.Execute(this);
            model.SaveAcceptAgreement();

            foreach (string s in reader.NewFile)
            {
                if (s == "LIAG:True")
                {
                    Assert.Pass();
                }
            }
        }
Example #17
0
        public void LicenseWriter_WriteAgreementStateWithoutOtherParameters_WritesLicenseCorrectly()
        {
            var reader = new FakeLicenseReader();

            reader.multiple = false;

            LicenseWriter writer = new LicenseWriter(reader);

            writer.WriteAgreementState(false);

            foreach (string s in reader.NewFile)
            {
                if (s == "LIAG:False")
                {
                    Assert.Pass();
                }
            }

            Assert.Fail();
        }
        public void LicenseSignatureInvalid1()
        {
            Dictionary <string, string> values = new Dictionary <string, string>();

            values.Add("Animal1", "Cat");
            values.Add("Animal2", "Winged Horse");
            MemoryStream licenseStream = new MemoryStream();

            LicenseWriter.Write(values, new TestSigner(), licenseStream);
            licenseStream.Position = 150;
            licenseStream.WriteByte(1);
            licenseStream.Position = 0;
            try
            {
                Dictionary <string, string> decodedValues = LicenseReader.Read(licenseStream, new TestValidator());
                Assert.Fail("Should have thrown exception");
            }
            catch (InvalidDataException)
            {
            }
        }
        /// <summary>
        /// This is the constructor for the MainWindow ViewModel
        /// </summary>
        public MainWindowViewModel(IKeyManager Manager, DataProvider data, IReader reader, IDialogCoordinator dialogCoordinator, bool IsTesting = false)
        {
            AddLicenses();

            //connect delegate commands to icommand handlers
            _changeToHeightCommand            = new DelegateCommand(OnChangeToHeight);
            _changeToLoadCommand              = new DelegateCommand(OnChangeToLoad);
            _changeToAboutCommand             = new DelegateCommand(OnChangeToAbout);
            _changeToAccelerationGraphCommand = new DelegateCommand(OnChangeToAccelerationGraph);
            _changeToAccelerationTimedCommand = new DelegateCommand(OnChangeToAccelerationTimed);
            _changeToAngleGraphCommand        = new DelegateCommand(OnChangeToAngleGraph);
            _changeToAngleTimedCommand        = new DelegateCommand(OnChangeToAngleTimed);
            _changeToMapRouteCommand          = new DelegateCommand(OnChangeToMapRoute);
            _changeToMapTimedCommand          = new DelegateCommand(OnChangeToMapTimed);
            _changeToVelocityGraphCommand     = new DelegateCommand(OnChangeToVelocityGraph);
            _changeToVelocityTimedCommand     = new DelegateCommand(OnChangeToVelocityTimed);
            _changeToHorizonCommand           = new DelegateCommand(OnChangeToHorizonCommand);

            dataProvider = data;

            coordinator = dialogCoordinator;

            manager = Manager;

            MapEnabled    = true;
            _mapAvailable = true;

            if (!reader.FileExists("CIDER.cfg"))
            {
                reader.WriteAllText("", "CIDER.cfg");
            }

            if (!manager.Fetch())
            {
                MapEnabled        = false;
                _mapAvailable     = false;
                displayApiKeyInfo = true;
            }

            if (!IsTesting)
            {
                if (ThemeManager.DetectAppStyle().Item1 == ThemeManager.GetAppTheme("BaseDark"))
                {
                    var theme = ThemeManager.DetectAppStyle();
                    ThemeManager.ChangeAppTheme(App.Current, "BaseDark");
                }
            }

            // Check the license
            try
            {
                LicenseWriter licenseWriter = new LicenseWriter(reader);
                _licenseAccepted = licenseWriter.ReadAgreementState();
                LicenseManager.LicensesAccepted = _licenseAccepted;

                if (_licenseAccepted == false)
                {
                    Licenses licenses = new Licenses();
                    licenses.Show();
                    _licenseAccepted = LicenseManager.LicensesAccepted;
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Couldn't configure License State");
                _licenseAccepted = false;
            }

            ButtonState(false);
            MapEnabled = false;

            if (_licenseAccepted)
            {
                ButtonState(true);
            }

            KeyManager.MapKeyChangedEvent     += KeyManager_MapKeyChangedEvent;
            LicenseHolder.LicenseChangedEvent += LicenseHolder_LicenseChangedEvent;
        }