Пример #1
0
        /// <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);
        }
        public void Setup()
        {
            var role = default(UserRoles);

            fakeSecuritySystem = new Fakes.StubIRoleBasedSecuritySystem()
            {
                CheckRightsToReadFileStringUserRoles = (p, r) =>
                {
                    return(true);
                }
            };

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

            sut = new RoleBasedSecurityDecorator(fakeFileReader, fakeSecuritySystem, role);
        }