/// <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() { 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); }