Permalink
Browse files

Refatorando PessoasListViewModel e suas dependencias

  • Loading branch information...
1 parent 2692cb7 commit 052d3bd4ed3cff15bc5306c121976c3de60a96b8 @herberthamaral committed Dec 30, 2011
Showing with 25 additions and 16 deletions.
  1. +1 −1 index.html
  2. +18 −6 lib/experiment.js
  3. +6 −9 spec/experiment-tests.js
View
2 index.html
@@ -40,7 +40,7 @@
<script type="text/javascript">
var pessoaForm = new PessoaFormViewModel();
ko.applyBindings(pessoaForm, document.getElementById('pessoa_form'));
- ko.applyBindings(PessoaListViewModel, document.getElementById('pessoa_list'));
+ ko.applyBindings(PessoasListViewModel, document.getElementById('pessoa_list'));
</script>
</body>
</html>
View
24 lib/experiment.js
@@ -20,8 +20,7 @@ var PessoaItemListViewModel = function(pessoa){
}
this.remover = function(self){
- PessoaRepository.remove(self.pessoa);
- PessoaListViewModel.list.remove(self);
+ PessoasListViewModel.remove(self);
}
this.nome_completo = ko.computed({
@@ -32,8 +31,22 @@ var PessoaItemListViewModel = function(pessoa){
});
}
-var PessoaListViewModel = {
- list : ko.observableArray()
+var PessoasListViewModel = {
+ list : ko.observableArray(),
+ push: function(itemListViewModel){
+ this.list.push(itemListViewModel);
+ PessoaRepository.push(itemListViewModel.pessoa);
+ },
+
+ remove: function(itemListViewModel){
+ this.list.remove(itemListViewModel);
+ PessoaRepository.remove(itemListViewModel.pessoa);
+ },
+ pop: function(){
+ var item = this.list.pop();
+ PessoaRepository.remove(item.pessoa);
+ }
+
}
var PessoaFormViewModel = function(){
@@ -51,8 +64,7 @@ var PessoaFormViewModel = function(){
this.adicionar = function(){
var pessoa = new Pessoa(this.nome(), this.sobrenome());
var pessoaView = new PessoaItemListViewModel(pessoa);
- PessoaRepository.push(pessoa);
- PessoaListViewModel.list.push(pessoaView);
+ PessoasListViewModel.push(pessoaView);
}
}
View
15 spec/experiment-tests.js
@@ -11,27 +11,24 @@ describe("PessoaFormViewModel", function(){
p.sobrenome('Derp');
p.adicionar();
expect(p.repository().length).toBe(1);
- PessoaListViewModel.list.pop();
- PessoaRepository.pop();
+ PessoasListViewModel.pop();
});
it("adicionar deve inserir no repositorio de list view", function(){
var p = new PessoaFormViewModel();
p.nome('Herp');
p.sobrenome('Derp');
p.adicionar();
- expect(PessoaListViewModel.list().length).toBe(1);
- PessoaListViewModel.list.pop();
- PessoaRepository.pop();
+ expect(PessoasListViewModel.list().length).toBe(1);
+ PessoasListViewModel.pop();
});
});
describe("PessoaListView", function(){
- it("remover deve remover da lista de exibicao e do repositorio",function(){
+ it("adicionar deve inserir na lista interna e no repositorio de pessoas", function(){
var pessoa = new Pessoa('Herp', 'Derp');
var pessoaView = new PessoaItemListViewModel(pessoa);
- PessoaRepository.push(pessoa);
- PessoaListViewModel.list.push(pessoaView);
- pessoaView.remover(pessoaView);
+ PessoasListViewModel.push(pessoaView);
+ PessoasListViewModel.remove(pessoaView);
expect(PessoaRepository().length).toBe(0);
});
});

0 comments on commit 052d3bd

Please sign in to comment.