from abc import ABC, abstractmethod
import unittest

class IStringCalculator(ABC):
    @abstractmethod
    def add(self, numbers: str) -> int:
        pass

class StringCalculator(IStringCalculator):
    def add(self, numbers: str) -> int:
        if not numbers:
            return 0
        return sum(map(int, numbers.split(',')))

class TestStringCalculator(unittest.TestCase):
    def setUp(self):
        self.calculator = StringCalculator()
    
    def test_empty_string(self):
        self.assertEqual(self.calculator.add(""), 0)
    
    def test_single_number(self):
        self.assertEqual(self.calculator.add("1"), 1)
    
    def test_two_numbers(self):
        self.assertEqual(self.calculator.add("1,2"), 3)

if __name__ == "__main__":
    unittest.main()