/// <summary>
        /// Open file pointed by the supplied path
        /// </summary>
        /// <param name="filePath"></param>
        private void OpenFile(string filePath)
        {
            var fileReader = GetFileReaderInstance();

            string text;

            ///Check if decryption feature is needed
            if (Encryption.IsChecked.Value)
            {
                var decrypter = new ReverseDecrypter();
                fileReader = new DecryptionDecorator(fileReader, decrypter);
            }
            ///Check if role-based security system feature is needed
            if (RoleBasedSecurity.IsChecked.Value)
            {
                var securitySystem = new DummySecuritySystem();

                if (!Enum.TryParse(UserRole.Text, out UserRoles role))
                {
                    throw new ArgumentException("Unable to parse selected role: " + UserRole.Text);
                }

                fileReader = new RoleBasedSecurityDecorator(fileReader, securitySystem, role);
            }

            fileReader.TryReadFile(filePath, out text);
            MessageBox.Show(text);
        }
Beispiel #2
0
        public void Setup()
        {
            fakeDecrypter = new Fakes.StubIDecrypter()
            {
                TryDecryptStringStringOut = (string encrypted, out string decrypted) =>
                {
                    decrypted = "";
                    return(true);
                },
            };

            fakeFileReader = new Fakes.StubIFileReader()
            {
                TryReadFileStringStringOut = (string path, out string output) =>
                {
                    output = "test";
                    return(true);
                }
            };

            sut = new DecryptionDecorator(fakeFileReader, fakeDecrypter);
        }