Advertisement
Guest User

Untitled

a guest
Nov 17th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 16.05 KB | None | 0 0
  1. """
  2. Console -> quit
  3.  
  4. """
  5.  
  6. from Service.PersoanaService import Service_Persoana
  7. from Repository.InMemoriePersoane import RepoPersoane,RepoPersExceptie
  8. from Domain.Validator_Persoana import PersoanaValidator, ExceptiePersoana
  9.  
  10. from Service.EvenimentService import EvenimenteService
  11. from Repository.InMemorieEvenimente import RepoEvenimente,RepoEvenimenteExceptie
  12. from Domain.Validator_Eveniment import ValidatorEvenimente, ExceptieEvenimente
  13.  
  14. class consola():
  15.     """
  16.    Consola
  17.    """
  18.    
  19.     def __init__(self, servicep, servicee):
  20.         self.__servicep = servicep
  21.         self.__servicee = servicee
  22.        
  23.     def afiseaza_persoane(self):
  24.         """
  25.        Functie ce imi afiseaza persoanele
  26.        """
  27.         Persoane = self.__servicep.get_persoane()
  28.         if (Persoane == ""):
  29.             print("Nu s persoane ! ")
  30.         else:
  31.             for pers in Persoane:
  32.                 print( pers.get_personId(), pers.get_nume(), pers.get_adresa())
  33.    
  34.     def adauga_persoana(self):
  35.         print()
  36.         id_p = input("Introduceti id ul ")
  37.         name = input("Introduceti numele ")
  38.         adress = input("Introduceti adresa ")
  39.         try:
  40.             self.__servicep.Create_person(id_p, name, adress)
  41.         except ExceptiePersoana as ex:
  42.             print("Nu e bine ")
  43.         except RepoPersExceptie as ex:
  44.             print("Nu e bine ")
  45.      
  46.      
  47.     def sterg_persoana(self):
  48.         id_p = input("Stergeti persoana cu id ul ")
  49.         return self.__servicep.sterg_persoana(id_p)
  50.      
  51.     def afiseaza_evenimente(self):
  52.         """
  53.        Functie ce imi afiseaza evenimentele
  54.        """
  55.         Evenimente = self.servicee.get_evenimente()
  56.         if (Evenimente == ""):
  57.             print("Nu s persoane ! ")
  58.         else:
  59.             for Eveniment in Evenimente:
  60.                 print(Eveniment.get_id(), Eveniment.get_data(), Eveniment.get_timp(), Eveniment.get_descriere())
  61.    
  62.     def adauga_eveniment(self):
  63.         print()
  64.         id = input("Introduceti id ul ")
  65.         data = input("Introduceti data ")
  66.         timp = input("Introduceti timp ")
  67.         descriere = input("Introduceti descrierea ")
  68.         try:
  69.             self.__servicee.create_eveniment(id, data, timp, descriere)
  70.         except RepoEvenimenteExceptie() as ex:  
  71.             print("Nu e bine ")
  72.         except ExceptieEvenimente() as ex:
  73.             print("Nu e bine ")
  74.      
  75.      
  76.        
  77.     def showUi(self):
  78.         while True:
  79.             print("[1] -> Persoane ")
  80.             print("[2] -> Evenimente\n ")
  81.             try:
  82.                 alegere = int(input())
  83.             except ValueError as ve:
  84.                 print("Nu merge")
  85.            
  86.             #Daca alegem persoanele
  87.             if (alegere == 1):
  88.                 print()
  89.                 print("[1] -> Adaugare persoana ")
  90.                 print("[2] -> Afisare persoane ")
  91.                 print("[3] -> Stergere persoana ")
  92.                 print("[4] -> Modificare persoana \n")
  93.                 try:
  94.                     ce_fac = int(input())
  95.                 except ValueError as ve:
  96.                     print("Nu merge")
  97.                
  98.                 if(ce_fac == 1):
  99.                     self.adauga_persoana()
  100.                 if(ce_fac == 2):
  101.                     self.afiseaza_persoane()        
  102.                 if(ce_fac == 3):
  103.                     self.sterg_persoana()
  104.                 if(ce_fac == 4):
  105.                     self.adauga_persoana()
  106.                
  107.             if (alegere == 2):
  108.                 print()
  109.                 print("[1] -> Adaugare eveniment ")
  110.                 print("[2] -> Afisare evenimente ")
  111.                 print("[3] -> Stergere eveniment ")
  112.                 print("[4] -> Modificare eveniment \n")    
  113.                 try:
  114.                     ce_fac = int(input())
  115.                 except ValueError as ve:
  116.                     print("Nu merge")
  117.                  
  118.                 if (ce_fac == 1):
  119.                     self.adauga_eveniment()
  120.                 if (ce_fac == 2):
  121.                     self.afiseaza_evenimente()
  122.                 if (ce_fac == 3):  
  123.                     pass
  124.                 if (ce_fac == 4):
  125.                     pass
  126.                    
  127.                    
  128.                    
  129. validatorPersoana = PersoanaValidator()
  130. repoPersoane = RepoPersoane()
  131. servicePersoane = Service_Persoana(validatorPersoana, repoPersoane)
  132.  
  133. validatorEveniment = ValidatorEvenimente()
  134. repoEvenimente = RepoEvenimente()
  135. serviceEvenimente = EvenimenteService(validatorEveniment, repoEvenimente)
  136.  
  137. Consola = consola(servicePersoane,serviceEvenimente)
  138.  
  139. Consola.showUi()
  140.  
  141. '''
  142. Created on 15 nov. 2018
  143. Entitate eveniment
  144.  
  145. @author: Edy
  146. '''
  147.  
  148. class eveniment(object):
  149.     '''
  150.    Clasa unui eveniment
  151.    Contine: : id, data, timp, descriere
  152.    '''
  153.  
  154.     def __init__(self, id, data, timp, descriere):
  155.         '''
  156.        Constructor
  157.        '''
  158.         self.__id = id
  159.         self.__data = data
  160.         self.__timp = timp
  161.         self.__descriere = descriere
  162.    
  163.     def get_id(self):
  164.         return self.__id
  165.    
  166.     def get_data(self):
  167.         return self.__data
  168.    
  169.     def get_timp(self):
  170.         return self.__timp
  171.    
  172.     def get_descriere(self):
  173.         return self.__descriere
  174.    
  175.     def __eq__(self, eveniment2):
  176.         return self.get_id() == eveniment2.get_id()
  177.    
  178. def test_creare_eveniment():
  179.     Eveniment = eveniment("123", "20.11", "2 ore", "Muzica")
  180.     assert Eveniment.get_id() == "123"
  181.     assert Eveniment.get_data() == "20.11"
  182.     assert Eveniment.get_timp() == "2 ore"
  183.     assert Eveniment.get_descriere() == "Muzica"
  184.  
  185. def test_egalitate_evenimente():
  186.     Eveniment1 = eveniment("123", "20.11", "2 ore", "Muzica")
  187.     Eveniment2 = eveniment("123", "20.11", "2 ore", "Muzica")
  188.     assert Eveniment1 == Eveniment2
  189.    
  190. test_creare_eveniment()
  191. test_egalitate_evenimente()
  192.        
  193. '''
  194. Created on 15 nov. 2018
  195.  
  196. Entitatea persoana
  197. @author: Edy
  198. '''
  199.  
  200. class persoana(object):
  201.     '''
  202.    Clasa unei persoane
  203.    Contine : Id, Nume, Adresa
  204.    '''
  205.  
  206.     def __init__(self, personId, nume, adresa):
  207.         '''
  208.        Constructor
  209.        '''
  210.         self.__personId = personId
  211.         self.__nume = nume
  212.         self.__adresa = adresa
  213.        
  214.     def get_personId(self):
  215.         return self.__personId
  216.    
  217.     def get_nume(self):
  218.         return self.__nume
  219.    
  220.     def get_adresa(self):
  221.         return self.__adresa
  222.        
  223.     def __eq__(self,person):
  224.         #Egalitatea dintre 2 persoane se face dupa id
  225.         return self.get_personId() == person.get_personId()
  226.    
  227. def test_creare_persoana():
  228.     #Testez daca merge crearea unei persoane
  229.     Persoana = persoana("12", "Ion", "Adress")
  230.     assert Persoana.get_personId() == "12"
  231.     assert Persoana.get_nume() == "Ion"
  232.     assert Persoana.get_adresa() == "Adress"
  233.  
  234. def test_egalitate():
  235.     Persoana1 = persoana("123", "Mihai", "Adr")
  236.     Persoana2 = persoana("123", "Mihai", "Adr")
  237.     assert Persoana1 == Persoana2
  238.    
  239. test_creare_persoana()
  240. test_egalitate()
  241.        
  242.    
  243. '''
  244. Created on 15 nov. 2018
  245.  
  246. Validam persoana
  247.  
  248. @author: Edy
  249. '''
  250.  
  251. from Domain.Entitate_Persoana import persoana
  252.  
  253. class ExceptiePersoana(Exception):
  254.     #Exceptia
  255.     def __init__(self, erori):
  256.         self.__erori = erori
  257.    
  258.     def get_erori(self):
  259.         return self.__erori
  260.        
  261.        
  262. class PersoanaValidator:
  263.    
  264.     def validate(self, person):
  265.         erori = []
  266.        
  267.         if (person.get_personId() == ""):
  268.             erori.append("Id ul nu poate fi gol ")
  269.        
  270.         if (person.get_nume() == ""):
  271.             erori.append("Numele nu poate fi gol")
  272.        
  273.         if(person.get_adresa() == ""):
  274.             erori.append("Adresa nu poate fi goala")
  275.        
  276.         if len(erori) > 0:
  277.             raise ExceptiePersoana(erori)
  278.    
  279. def test_validator():
  280.     # Functie de testare a validatorului
  281.     validator= PersoanaValidator()
  282.     Persoana1 = persoana("", "", "")
  283.    
  284.     try:
  285.         validator.validate(Persoana1)
  286.         assert False
  287.     except ExceptiePersoana as ex:
  288.         assert len(ex.get_erori()) == 3
  289.    
  290.     Persoana2 = persoana("asd", "", "")
  291.    
  292.     try:
  293.         validator.validate(Persoana2)
  294.         assert False
  295.     except ExceptiePersoana as ex:
  296.         assert len(ex.get_erori()) == 2  
  297.    
  298.     Persoana3 = persoana("ads", "dsad", "dsa")
  299.     try:
  300.         validator.validate(Persoana3)
  301.         assert True
  302.     except ExceptiePersoana as ex:
  303.         assert False
  304.  
  305. test_validator()
  306.        
  307. """
  308.  
  309. Modul pentru validarea evenimentelor
  310.  
  311.  
  312. """
  313.  
  314. from Domain.Entitate_Eveniment import eveniment
  315.  
  316. class ExceptieEvenimente(Exception):
  317.     def __init__(self, erori):
  318.         self.__erori = erori
  319.    
  320.     def get_erori(self):
  321.         return self.__erori
  322.    
  323.  
  324. class ValidatorEvenimente():
  325.     """
  326.    Clasa pentru validarea evenimentelor
  327.    """
  328.    
  329.     def validate(self, Eveniment):
  330.        
  331.         #id, data, timp, descriere
  332.        
  333.         erori = []
  334.         if (Eveniment.get_id() == ""):
  335.             erori.append("Id ul nu poate fi gol ")
  336.         if (Eveniment.get_data() == ""):
  337.             erori.append("Data nu poate fi goala ")
  338.         if (Eveniment.get_timp() == ""):
  339.             erori.append("Timpul nu poate fi gol" )
  340.         if(Eveniment.get_descriere() == ""):
  341.             erori.append("Descrierea nu poate fi goala ")
  342.        
  343.         if len(erori) > 0:
  344.             raise ExceptieEvenimente(erori)
  345.        
  346. def test_validator_evenimente():
  347.     validator = ValidatorEvenimente()
  348.    
  349.     Eveniment1 = eveniment("", "", "", "")
  350.     try:
  351.         validator.validate(Eveniment1)
  352.         assert False
  353.     except ExceptieEvenimente as ex:
  354.         assert len(ex.get_erori()) == 4
  355.    
  356.     Eveniment2 = eveniment("asd", "aa","","")
  357.     try:
  358.         validator.validate(Eveniment2)
  359.         assert False
  360.     except ExceptieEvenimente as ex:
  361.         assert len(ex.get_erori()) == 2
  362.        
  363.     Eveniment3 = eveniment("s","s","asd","a")
  364.     try:
  365.         validator.validate(Eveniment3)
  366.         assert True
  367.     except ExceptieEvenimente as ex:
  368.         assert False      
  369.        
  370. test_validator_evenimente()
  371.    
  372.    
  373.  '''
  374. Created on 16 nov. 2018
  375.  
  376. Modul pentru stocarea evenimentelor
  377.  
  378. @author: Edy
  379. '''
  380.  
  381. from Domain.Entitate_Eveniment import eveniment
  382.  
  383. class RepoEvenimenteExceptie(Exception):
  384.     pass
  385.    
  386. class RepoEvenimente():
  387.     """
  388.    Repository pt evenimente
  389.    """
  390.    
  391.     def __init__(self):
  392.         self.__Evenimente = {}
  393.        
  394.     def store_evenimente(self, eveniment):
  395.        
  396.         if eveniment.get_id() in self.__Evenimente:
  397.             raise RepoEvenimenteExceptie
  398.        
  399.         self.__Evenimente[eveniment.get_id()] = eveniment
  400.        
  401.     def cate_evenimente(self):
  402.         return len(self.__Evenimente)
  403.    
  404.     def get_evenimente(self):
  405.         return list(self.__Evenimente.values())
  406.    
  407. def test_store_evenimente():
  408.    
  409.     repo = RepoEvenimente()
  410.     eveniment1 = eveniment("yes", "no", "3", "123")
  411.    
  412.     repo.store_evenimente(eveniment1)
  413.     assert repo.cate_evenimente() == 1
  414.    
  415.     try:
  416.         repo.store_evenimente(eveniment1)
  417.         assert False
  418.     except RepoEvenimenteExceptie as ex:
  419.         pass
  420.    
  421. test_store_evenimente()
  422.            
  423.  
  424. '''
  425. Created on 16 nov. 2018
  426. Service_Persoana
  427. @author: Edy
  428. '''
  429. from Domain.Validator_Persoana import PersoanaValidator,ExceptiePersoana
  430. from Domain.Entitate_Persoana import persoana
  431. from Repository.InMemoriePersoane import RepoPersoane, RepoPersExceptie
  432.  
  433. class Service_Persoana(object):
  434.     '''
  435.    Service ul pentru persoana!
  436.    '''
  437.  
  438.     def __init__(self, validator_persoana, repo_persoana_validator):
  439.         '''
  440.        So we create validator_entity and repo_validator
  441.        '''
  442.         self.__validator_persoana = validator_persoana
  443.         self.__repo_persoana_validator = repo_persoana_validator
  444.    
  445.     def Create_person(self, id_pers, nume, adresa):
  446.         """
  447.        Ca o persoana sa se creeze
  448.        Trebuie sa nu aibe id , numele or adresa -> ""
  449.        Vom apela validator pentru persoane sa vedem daca aceasta conditie este implinita
  450.        Pai daca e indeplinita, trebuie sa vedem si la repo_validator daca nu e cumva acolo
  451.        In caz naspa, Raise !
  452.        
  453.        """
  454.         #Creem persoana
  455.         Persoana1 = persoana(id_pers, nume, adresa)
  456.        
  457.         self.__validator_persoana.validate(Persoana1)
  458.        
  459.         #Si am validat first
  460.         #Acuma trebuie repo_validate sa isi faca treaba
  461.        
  462.         self.__repo_persoana_validator.store_persoane(Persoana1)
  463.        
  464.         return Persoana1
  465.    
  466.     def get_persoane(self):
  467.         # Afisarea persoanelor
  468.         return self.__repo_persoana_validator.get_persoane()
  469.    
  470.     def sterg_persoana(self, id_p):
  471.         return self.__repo_persoana_validator.sterg_persoana(id_p)
  472.    
  473. def test_creez_persoana():
  474.    
  475.     validator_pers = PersoanaValidator()
  476.     repo_val = RepoPersoane()
  477.     service_pers = Service_Persoana(validator_pers, repo_val)
  478.     try:
  479.         service_pers.Create_person("","ion","cluj")
  480.         assert False
  481.     except ExceptiePersoana as ex:
  482.         assert True
  483.     try:
  484.         service_pers.Create_person("123","ion","cluj")
  485.         assert True
  486.     except RepoPersExceptie as ex:
  487.         assert False    
  488.        
  489. test_creez_persoana()
  490.        
  491. '''
  492. Created on 16 nov. 2018
  493. Service Evenimente
  494. @author: Edy
  495. '''
  496.  
  497. from Domain.Entitate_Eveniment import eveniment, test_creare_eveniment
  498. from Domain.Validator_Eveniment import ValidatorEvenimente, ExceptieEvenimente
  499. from Repository.InMemorieEvenimente import RepoEvenimente
  500. from Repository.InMemoriePersoane import RepoPersExceptie
  501.  
  502. class EvenimenteService(object):
  503.     '''
  504.    CRUD
  505.    '''
  506.  
  507.     def __init__(self, validator_eveniment, validator_repo_evenimente):
  508.         '''
  509.        Constructor
  510.        '''
  511.         self.__validator_eveniment = validator_eveniment
  512.         self.__validator_repo_evenimente = validator_repo_evenimente
  513.        
  514.     def create_eveniment(self, id, data, timp, descriere):
  515.        
  516.         Eveniment = eveniment(id, data, timp, descriere)
  517.         self.__validator_eveniment.validate(Eveniment)
  518.         self.__validator_repo_evenimente.store_evenimente(Eveniment)
  519.         return Eveniment
  520.  
  521.     def get_evenimente(self):
  522.         return self.__validator_repo_evenimente.get_evenimente()
  523.  
  524.  
  525. def test_creare_eveniment():
  526.     """ we test if Evenimente Service is working """
  527.  
  528.     Eveniment = eveniment("123","20","11","frumos")
  529.     repo_validator = RepoEvenimente()
  530.     validator_evenimente = ValidatorEvenimente()
  531.     service_evenimente = EvenimenteService(validator_evenimente, repo_validator)
  532.     try:
  533.         service_evenimente.create_eveniment("123","20","20","untold")
  534.         assert True
  535.     except ExceptieEvenimente as ex:
  536.         assert False
  537.    
  538.    
  539.  
  540. test_creare_eveniment()
  541.    
  542.        
  543.  '''
  544. Created on 16 nov. 2018
  545.  
  546. Modul pentru stocarea persoanelor
  547.  
  548. @author: Edy
  549. '''
  550. from Domain.Entitate_Persoana import persoana
  551.  
  552. class RepoPersExceptie(Exception):
  553.    
  554.     def __init__(self):
  555.         return
  556.    
  557.  
  558. class RepoPersoane():
  559.    
  560.     def __init__(self):
  561.         self.__Persoane = {}
  562.    
  563.     def store_persoane(self, Persoana):
  564.        
  565.         if Persoana.get_personId() in self.__Persoane:
  566.             raise RepoPersExceptie
  567.         self.__Persoane[Persoana.get_personId()] = Persoana
  568.        
  569.        
  570.     def cate_persoane(self):
  571.         return len(self.__Persoane)
  572.    
  573.     def get_persoane(self):
  574.         return list(self.__Persoane.values())
  575.      
  576.     def sterg_persoana(self,id_p):
  577.         if id_p in self.__Persoane:
  578.             del self.__Persoane[id_p]
  579.    
  580. def test_store_persoane():
  581.     Persoana = persoana("1","john","cluj")
  582.     rep = RepoPersoane()
  583.     assert rep.cate_persoane() == 0
  584.     rep.store_persoane(Persoana)
  585.     assert rep.cate_persoane() == 1
  586.     try:
  587.         rep.store_persoane(Persoana)
  588.         assert False
  589.     except RepoPersExceptie as ex:
  590.         pass
  591.        
  592. test_store_persoane()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement