41 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			41 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								import unittest
							 | 
						||
| 
								 | 
							
								from MultiServer import Context, ServerCommandProcessor
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TestResolvePlayerName(unittest.TestCase):
							 | 
						||
| 
								 | 
							
								    def test_resolve(self) -> None:
							 | 
						||
| 
								 | 
							
								        p = ServerCommandProcessor(Context("", 0, "", "", 0, 0, False))
							 | 
						||
| 
								 | 
							
								        p.ctx.player_names = {
							 | 
						||
| 
								 | 
							
								            (1, 1): "AAA",
							 | 
						||
| 
								 | 
							
								            (1, 2): "aBc",
							 | 
						||
| 
								 | 
							
								            (1, 3): "abC",
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        assert not p.resolve_player("abc"), "ambiguous name entry shouldn't resolve to player"
							 | 
						||
| 
								 | 
							
								        assert not p.resolve_player("Abc"), "ambiguous name entry shouldn't resolve to player"
							 | 
						||
| 
								 | 
							
								        assert p.resolve_player("aBc") == (1, 2, "aBc"), "matching case resolve"
							 | 
						||
| 
								 | 
							
								        assert p.resolve_player("abC") == (1, 3, "abC"), "matching case resolve"
							 | 
						||
| 
								 | 
							
								        assert not p.resolve_player("aB"), "partial name shouldn't resolve to player"
							 | 
						||
| 
								 | 
							
								        assert not p.resolve_player("abCD"), "incorrect name shouldn't resolve to player"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        p.ctx.player_names = {
							 | 
						||
| 
								 | 
							
								            (1, 1): "aaa",
							 | 
						||
| 
								 | 
							
								            (1, 2): "abc",
							 | 
						||
| 
								 | 
							
								            (1, 3): "abC",
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        assert p.resolve_player("abc") == (1, 2, "abc"), "matching case resolve"
							 | 
						||
| 
								 | 
							
								        assert not p.resolve_player("Abc"), "ambiguous name entry shouldn't resolve to player"
							 | 
						||
| 
								 | 
							
								        assert not p.resolve_player("aBc"), "ambiguous name entry shouldn't resolve to player"
							 | 
						||
| 
								 | 
							
								        assert p.resolve_player("abC") == (1, 3, "abC"), "matching case resolve"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        p.ctx.player_names = {
							 | 
						||
| 
								 | 
							
								            (1, 1): "AbcdE",
							 | 
						||
| 
								 | 
							
								            (1, 2): "abc",
							 | 
						||
| 
								 | 
							
								            (1, 3): "abCD",
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        assert p.resolve_player("abc") == (1, 2, "abc"), "matching case resolve"
							 | 
						||
| 
								 | 
							
								        assert p.resolve_player("abC") == (1, 2, "abc"), "case insensitive resolves when 1 match"
							 | 
						||
| 
								 | 
							
								        assert p.resolve_player("Abc") == (1, 2, "abc"), "case insensitive resolves when 1 match"
							 | 
						||
| 
								 | 
							
								        assert p.resolve_player("ABC") == (1, 2, "abc"), "case insensitive resolves when 1 match"
							 | 
						||
| 
								 | 
							
								        assert p.resolve_player("abcd") == (1, 3, "abCD"), "case insensitive resolves when 1 match"
							 | 
						||
| 
								 | 
							
								        assert not p.resolve_player("aB"), "partial name shouldn't resolve to player"
							 |