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