From 3229d1f59c6c6f0b609a606e5b617cbc8ee6b97d Mon Sep 17 00:00:00 2001
From: Gregor Longariva <gregor.longariva@fau.de>
Date: Sun, 23 Mar 2025 15:09:23 +0100
Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A5=20removed=20wrong=20test=20code?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 NetworkShareMounterTests/Info.plist           |  22 ---
 .../KeychainManagerMockTests.swift            | 151 ------------------
 .../ManagerTests/KeychainManagerTests.swift   | 144 -----------------
 3 files changed, 317 deletions(-)
 delete mode 100644 NetworkShareMounterTests/Info.plist
 delete mode 100644 NetworkShareMounterTests/ManagerTests/KeychainManagerMockTests.swift
 delete mode 100644 NetworkShareMounterTests/ManagerTests/KeychainManagerTests.swift

diff --git a/NetworkShareMounterTests/Info.plist b/NetworkShareMounterTests/Info.plist
deleted file mode 100644
index fb402aa..0000000
--- a/NetworkShareMounterTests/Info.plist
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-    <key>CFBundleDevelopmentRegion</key>
-    <string>$(DEVELOPMENT_LANGUAGE)</string>
-    <key>CFBundleExecutable</key>
-    <string>$(EXECUTABLE_NAME)</string>
-    <key>CFBundleIdentifier</key>
-    <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
-    <key>CFBundleInfoDictionaryVersion</key>
-    <string>6.0</string>
-    <key>CFBundleName</key>
-    <string>$(PRODUCT_NAME)</string>
-    <key>CFBundlePackageType</key>
-    <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
-    <key>CFBundleShortVersionString</key>
-    <string>1.0</string>
-    <key>CFBundleVersion</key>
-    <string>1</string>
-</dict>
-</plist>
diff --git a/NetworkShareMounterTests/ManagerTests/KeychainManagerMockTests.swift b/NetworkShareMounterTests/ManagerTests/KeychainManagerMockTests.swift
deleted file mode 100644
index 7288bc4..0000000
--- a/NetworkShareMounterTests/ManagerTests/KeychainManagerMockTests.swift
+++ /dev/null
@@ -1,151 +0,0 @@
-import XCTest
-@testable import Network_Share_Mounter
-
-final class KeychainManagerMockTests: XCTestCase {
-    
-    // Test with mocked KeychainManager to avoid real keychain access
-    class KeychainManagerMock: KeychainManager {
-        var savedCredentials: [String: [String: String]] = [:]
-        var makeQueryCalled = false
-        var shouldThrowOnMakeQuery = false
-        var shouldThrowOnSave = false
-        var shouldThrowOnRetrieve = false
-        
-        override func makeQuery(share shareURL: URL, username: String, service: String? = nil, accessGroup: String? = nil, comment: String? = nil) throws -> [String: Any] {
-            makeQueryCalled = true
-            
-            if shouldThrowOnMakeQuery {
-                throw KeychainError.malformedShare
-            }
-            
-            return ["mockKey": "mockValue"]
-        }
-        
-        override func makeQuery(username: String, service: String = Defaults.keyChainService, accessGroup: String? = nil, label: String? = nil, comment: String? = nil) throws -> [String: Any] {
-            makeQueryCalled = true
-            
-            if shouldThrowOnMakeQuery {
-                throw KeychainError.malformedShare
-            }
-            
-            return ["mockKey": "mockValue"]
-        }
-        
-        override func saveCredential(forShare share: URL, withUsername username: String, andPassword password: String, withLabel label: String? = Defaults.keyChainService, accessGroup: String? = Defaults.keyChainAccessGroup, comment: String? = nil) throws {
-            if shouldThrowOnSave {
-                throw KeychainError.undefinedError
-            }
-            
-            let key = "\(share.absoluteString)|\(username)"
-            savedCredentials[key] = ["username": username, "password": password]
-        }
-        
-        override func saveCredential(forUsername username: String, andPassword password: String, withService service: String = Defaults.keyChainService, andLabel label: String? = nil, accessGroup: String? = nil, comment: String? = nil) throws {
-            if shouldThrowOnSave {
-                throw KeychainError.undefinedError
-            }
-            
-            let key = "\(service)|\(username)"
-            savedCredentials[key] = ["username": username, "password": password]
-        }
-        
-        override func retrievePassword(forShare share: URL, withUsername username: String) throws -> String? {
-            if shouldThrowOnRetrieve {
-                throw KeychainError.errorRetrievingPassword
-            }
-            
-            let key = "\(share.absoluteString)|\(username)"
-            return savedCredentials[key]?["password"]
-        }
-        
-        override func retrievePassword(forUsername username: String, andService service: String = Defaults.keyChainService, accessGroup: String? = nil) throws -> String? {
-            if shouldThrowOnRetrieve {
-                throw KeychainError.errorRetrievingPassword
-            }
-            
-            let key = "\(service)|\(username)"
-            return savedCredentials[key]?["password"]
-        }
-        
-        override func removeCredential(forShare share: URL, withUsername username: String) throws {
-            let key = "\(share.absoluteString)|\(username)"
-            savedCredentials.removeValue(forKey: key)
-        }
-        
-        override func removeCredential(forUsername username: String, andService service: String = Defaults.keyChainService, accessGroup: String = Defaults.keyChainAccessGroup) throws {
-            let key = "\(service)|\(username)"
-            savedCredentials.removeValue(forKey: key)
-        }
-    }
-    
-    var mockKeychainManager: KeychainManagerMock!
-    
-    override func setUpWithError() throws {
-        mockKeychainManager = KeychainManagerMock()
-    }
-    
-    override func tearDownWithError() throws {
-        mockKeychainManager = nil
-    }
-    
-    // MARK: - Tests with Mocks
-    
-    func testSaveAndRetrieveWithMock() throws {
-        let testURL = URL(string: "smb://testserver.example.com/testshare")!
-        let testUsername = "testuser"
-        let testPassword = "testpassword"
-        
-        // Save credential
-        try mockKeychainManager.saveCredential(forShare: testURL, withUsername: testUsername, andPassword: testPassword)
-        
-        // Retrieve and verify
-        let retrievedPassword = try mockKeychainManager.retrievePassword(forShare: testURL, withUsername: testUsername)
-        XCTAssertEqual(retrievedPassword, testPassword)
-    }
-    
-    func testErrorHandlingWithMock() throws {
-        let testURL = URL(string: "smb://testserver.example.com/testshare")!
-        let testUsername = "testuser"
-        
-        // Set mock to throw on retrieve
-        mockKeychainManager.shouldThrowOnRetrieve = true
-        
-        XCTAssertThrowsError(try mockKeychainManager.retrievePassword(forShare: testURL, withUsername: testUsername)) { error in
-            XCTAssertEqual(error as? KeychainError, KeychainError.errorRetrievingPassword)
-        }
-    }
-    
-    func testRemoveCredentialWithMock() throws {
-        let testURL = URL(string: "smb://testserver.example.com/testshare")!
-        let testUsername = "testuser"
-        let testPassword = "testpassword"
-        
-        // Save credential
-        try mockKeychainManager.saveCredential(forShare: testURL, withUsername: testUsername, andPassword: testPassword)
-        
-        // Verify it exists
-        XCTAssertNotNil(try mockKeychainManager.retrievePassword(forShare: testURL, withUsername: testUsername))
-        
-        // Remove credential
-        try mockKeychainManager.removeCredential(forShare: testURL, withUsername: testUsername)
-        
-        // Verify it's gone
-        XCTAssertNil(try mockKeychainManager.retrievePassword(forShare: testURL, withUsername: testUsername))
-    }
-    
-    func testMultipleCredentialsWithMock() throws {
-        let testURL1 = URL(string: "smb://server1.example.com/share1")!
-        let testURL2 = URL(string: "smb://server2.example.com/share2")!
-        let testUsername = "testuser"
-        let testPassword1 = "password1"
-        let testPassword2 = "password2"
-        
-        // Save credentials
-        try mockKeychainManager.saveCredential(forShare: testURL1, withUsername: testUsername, andPassword: testPassword1)
-        try mockKeychainManager.saveCredential(forShare: testURL2, withUsername: testUsername, andPassword: testPassword2)
-        
-        // Verify both exist with correct values
-        XCTAssertEqual(try mockKeychainManager.retrievePassword(forShare: testURL1, withUsername: testUsername), testPassword1)
-        XCTAssertEqual(try mockKeychainManager.retrievePassword(forShare: testURL2, withUsername: testUsername), testPassword2)
-    }
-} 
\ No newline at end of file
diff --git a/NetworkShareMounterTests/ManagerTests/KeychainManagerTests.swift b/NetworkShareMounterTests/ManagerTests/KeychainManagerTests.swift
deleted file mode 100644
index 20f4943..0000000
--- a/NetworkShareMounterTests/ManagerTests/KeychainManagerTests.swift
+++ /dev/null
@@ -1,144 +0,0 @@
-import XCTest
-@testable import Network_Share_Mounter
-
-final class KeychainManagerTests: XCTestCase {
-    
-    var keychainManager: KeychainManager!
-    
-    // Test constants
-    let testShareURL = URL(string: "smb://testserver.example.com/testshare")!
-    let testUsername = "testuser"
-    let testPassword = "testpassword"
-    let testService = "de.fau.rrze.NetworkShareMounter.UNITTEST"
-    
-    override func setUpWithError() throws {
-        keychainManager = KeychainManager()
-        // Clean up any test data from previous test runs
-        try? keychainManager.removeCredential(forShare: testShareURL, withUsername: testUsername)
-        try? keychainManager.removeCredential(forUsername: testUsername, andService: testService)
-    }
-    
-    override func tearDownWithError() throws {
-        // Clean up after tests
-        try? keychainManager.removeCredential(forShare: testShareURL, withUsername: testUsername)
-        try? keychainManager.removeCredential(forUsername: testUsername, andService: testService)
-        keychainManager = nil
-    }
-    
-    // MARK: - Query Generation Tests
-    
-    func testMakeQueryForShare() throws {
-        let query = try keychainManager.makeQuery(share: testShareURL, username: testUsername)
-        
-        XCTAssertEqual(query[kSecClass as String] as? String, kSecClassInternetPassword as String)
-        XCTAssertEqual(query[kSecAttrAccount as String] as? String, testUsername)
-        XCTAssertEqual(query[kSecAttrServer as String] as? String, testShareURL.host)
-        XCTAssertEqual(query[kSecAttrPath as String] as? String, testShareURL.lastPathComponent)
-    }
-    
-    func testMakeQueryForUsername() throws {
-        let query = try keychainManager.makeQuery(username: testUsername, service: testService)
-        
-        XCTAssertEqual(query[kSecClass as String] as? String, kSecClassGenericPassword as String)
-        XCTAssertEqual(query[kSecAttrAccount as String] as? String, testUsername)
-        XCTAssertEqual(query[kSecAttrService as String] as? String, testService)
-    }
-    
-    func testMakeQueryWithMalformedURL() throws {
-        let invalidURL = URL(string: "smb:")!
-        
-        XCTAssertThrowsError(try keychainManager.makeQuery(share: invalidURL, username: testUsername)) { error in
-            XCTAssertEqual(error as? KeychainError, KeychainError.malformedShare)
-        }
-    }
-    
-    // MARK: - Credential Storage and Retrieval Tests
-    
-    func testSaveAndRetrieveShareCredential() throws {
-        // Save credential
-        try keychainManager.saveCredential(forShare: testShareURL, withUsername: testUsername, andPassword: testPassword)
-        
-        // Retrieve and verify
-        let retrievedPassword = try keychainManager.retrievePassword(forShare: testShareURL, withUsername: testUsername)
-        XCTAssertEqual(retrievedPassword, testPassword)
-    }
-    
-    func testSaveAndRetrieveUsernameCredential() throws {
-        // Save credential
-        try keychainManager.saveCredential(forUsername: testUsername, andPassword: testPassword, withService: testService)
-        
-        // Retrieve and verify
-        let retrievedPassword = try keychainManager.retrievePassword(forUsername: testUsername, andService: testService)
-        XCTAssertEqual(retrievedPassword, testPassword)
-    }
-    
-    func testOverwriteExistingCredential() throws {
-        // Save initial credential
-        try keychainManager.saveCredential(forShare: testShareURL, withUsername: testUsername, andPassword: testPassword)
-        
-        // Overwrite with new password
-        let newPassword = "newpassword"
-        try keychainManager.saveCredential(forShare: testShareURL, withUsername: testUsername, andPassword: newPassword)
-        
-        // Verify new password is stored
-        let retrievedPassword = try keychainManager.retrievePassword(forShare: testShareURL, withUsername: testUsername)
-        XCTAssertEqual(retrievedPassword, newPassword)
-    }
-    
-    // MARK: - Credential Removal Tests
-    
-    func testRemoveShareCredential() throws {
-        // Save credential
-        try keychainManager.saveCredential(forShare: testShareURL, withUsername: testUsername, andPassword: testPassword)
-        
-        // Verify it exists
-        XCTAssertNoThrow(try keychainManager.retrievePassword(forShare: testShareURL, withUsername: testUsername))
-        
-        // Remove credential
-        try keychainManager.removeCredential(forShare: testShareURL, withUsername: testUsername)
-        
-        // Verify it's gone - should throw error
-        XCTAssertThrowsError(try keychainManager.retrievePassword(forShare: testShareURL, withUsername: testUsername))
-    }
-    
-    func testRemoveUsernameCredential() throws {
-        // Save credential
-        try keychainManager.saveCredential(forUsername: testUsername, andPassword: testPassword, withService: testService)
-        
-        // Verify it exists
-        XCTAssertNoThrow(try keychainManager.retrievePassword(forUsername: testUsername, andService: testService))
-        
-        // Remove credential
-        try keychainManager.removeCredential(forUsername: testUsername, andService: testService)
-        
-        // Verify it's gone - should throw error
-        XCTAssertThrowsError(try keychainManager.retrievePassword(forUsername: testUsername, andService: testService))
-    }
-    
-    func testRemoveNonExistentCredential() throws {
-        // Should not throw when trying to remove non-existent credential
-        XCTAssertNoThrow(try keychainManager.removeCredential(forShare: testShareURL, withUsername: "nonexistentuser"))
-    }
-    
-    // MARK: - Error Handling Tests
-    
-    func testInvalidPasswordEncoding() throws {
-        // Creating a string that can't be encoded in UTF-8 is difficult in Swift,
-        // as String is already UTF-8 compatible. This is more a conceptual test.
-        // In a real scenario, we'd need to create a mock or subclass to test this.
-        
-        // For now, we'll just verify the error path exists in the code
-        let mockManager = MockKeychainManager()
-        XCTAssertThrowsError(try mockManager.simulateEncodingFailure()) { error in
-            XCTAssertEqual(error as? KeychainError, KeychainError.unexpectedPasswordData)
-        }
-    }
-}
-
-// Mock class for testing error conditions
-class MockKeychainManager: KeychainManager {
-    func simulateEncodingFailure() throws {
-        // Simulate the code path where password encoding fails
-        throw KeychainError.unexpectedPasswordData
-    }
-} 
\ No newline at end of file
-- 
GitLab