示例#1
0
        private void ReadFileButton_Click(object sender, EventArgs e)
        {
            var fileReaderBuilder = FileReaderBuilder.UseFilePath(filePathTextBox.Text);

            if (decryptFileCheckBox.Checked)
            {
                fileReaderBuilder.UseDecryptor(new ReverseContentsDecryptor());
            }

            if (checkRoleCheckBox.Checked)
            {
                fileReaderBuilder.UseRoleChecker(new BasicRoleChecker(userRoleComboBox.Text));
            }

            try
            {
                fileContentsTextBox.Text = fileReaderBuilder.ReadFile();
            }
            catch (ArgumentNullException ex)
            {
                ShowErrorMessage(ex.Message);
            }
            catch (ArgumentException ex)
            {
                ShowErrorMessage(ex.Message);
            }
            catch (UnauthorizedAccessException ex)
            {
                ShowErrorMessage(ex.Message);
            }
        }
示例#2
0
 protected void setUpFileReaders()
 {
     fileReaders          = new IFileReader[numberOfFiles];
     readAccessStatistics = new IStatistics[numberOfFiles];
     for (var i = 0; i < numberOfFiles; i++)
     {
         var reader = new FileReaderBuilder()
                      .SetFileBase(fileBases[i])
                      .Build();
         fileReaders[i]          = reader;
         readAccessStatistics[i] = (FileReader)reader;
     }
 }
        public async Task Read_SecuredXmlFileAsReceptionist_ShouldReturnUnauthorizedMsg()
        {
            // Arrange
            var dir  = TestHelper.GetFilesDirectory();
            var path = Path.Combine(dir, "regulartextfile.xml");
            var sut  = new FileReaderBuilder(path)
                       .Init(FileType.Xml)
                       .UseAuthorization(new ReadAuthorization(UserRole.Receptionist))
                       .Build();

            const string expectedFileContent = "Unauthorized request.";

            // Act
            var fileContent = await sut.ReadAsync();

            // Assert
            Assert.Equal(expectedFileContent, fileContent);
        }
        public async Task Read_RegularJsonFile_ShouldReturnFileContent()
        {
            // Arrange
            var dir  = TestHelper.GetFilesDirectory();
            var path = Path.Combine(dir, "regularjsonfile.json");
            var sut  = new FileReaderBuilder(path)
                       .Init(FileType.Json)
                       .Build();

            const string expectedFileContent =
                "{\r\n\t\"customers\": [\r\n\t\t{\r\n\t\t\t\"name\": \"Customer 1\",\r\n\t\t\t\"address\": {\r\n\t\t\t\t\"street\": \"Hello street\",\r\n\t\t\t\t\"houseNr\": \"87\",\r\n\t\t\t\t\"box\": \"4b\",\r\n\t\t\t\t\"zipCode\": \"1000\",\r\n\t\t\t\t\"city\": \"Brussels\"\r\n\t\t\t}\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"name\": \"Customer 2\",\r\n\t\t\t\"address\": {\r\n\t\t\t\t\"street\": \"Morning street\",\r\n\t\t\t\t\"houseNr\": \"5\",\r\n\t\t\t\t\"box\": \"10\",\r\n\t\t\t\t\"zipCode\": \"9900\",\r\n\t\t\t\t\"city\": \"Gent\"\r\n\t\t\t}\r\n\t\t}\r\n\t]\r\n}";

            // Act
            var fileContent = await sut.ReadAsync();

            // Assert
            Assert.Equal(expectedFileContent, fileContent);
        }
        public async Task Read_SecuredAndEncryptedTextFileAsAdmin_ShouldReturnDecryptedFileContent()
        {
            // Arrange
            var dir  = TestHelper.GetFilesDirectory();
            var path = Path.Combine(dir, "encryptedtextfile.txt");
            var sut  = new FileReaderBuilder(path)
                       .Init(FileType.Text)
                       .UseEncryption(new ReverseEncryption())
                       .UseAuthorization(new ReadAuthorization(UserRole.Admin))
                       .Build();

            const string expectedFileContent = "Hello there!\r\nThis is an encrypted text file.\r\n\r\n\r\n";

            // Act
            var fileContent = await sut.ReadAsync();

            // Assert
            Assert.Equal(expectedFileContent, fileContent);
        }