//describe('KonstantEkonomiCtrl', function () { // 'use strict'; // beforeEach(angular.mock.module('fasit', 'fbMocks')); // var rootScopeMock: fb.IMockRootScope; // var rootScope; // var controller; // var domainService: fb.IMockDomainService; // var maeklarObjektLaanService: fb.IMockMaeklarObjektLaanService; // var $filter: ng.IFilterService; // var budService: fb.IMockBudService; // var instaellningarService: fb.IMockInstaellningarService; // var provisionService: fb.IMockProvisionService; // var $rootScope: fb.IRootScope; // var medarbetareService: fb.IMockMedarbetareService; // var personService: fb.IMockPersonService; // var maeklarObjektLaanOchPantbrevService: fb.IMockMaeklarObjektLaanOchPantbrevService; // var globalTimerService: any; // var $scope: fb.IKonstantEkonomiCtrlScope; // beforeEach(inject(function ($injector, $rootScope, $controller, getMaeklarObjekt) { // rootScopeMock = $injector.get('rootScopeMock'); // rootScope = $rootScope; // $rootScope['maeklarObjekt'] = new fb.MaeklarObjektDO(getMaeklarObjekt); // $rootScope['InloggadAnvaendare'] = rootScopeMock.InloggadAnvaendare; // $scope = rootScope.$new(); // domainService = $injector.get('domainService'); // maeklarObjektLaanService = $injector.get('maeklarObjektLaanService'); // budService = $injector.get('budService'); // instaellningarService = $injector.get('instaellningarService'); // provisionService = $injector.get('provisionService'); // medarbetareService = $injector.get('medarbetareService'); // personService = $injector.get('personService'); // maeklarObjektLaanOchPantbrevService = $injector.get('maeklarObjektLaanOchPantbrevService'); // globalTimerService = $injector.get('globalTimerService'); // controller = $controller; // })); // describe('Initialisering', function () { // beforeEach(inject(function ($injector) { // spyOn(maeklarObjektLaanOchPantbrevService, 'get'); // spyOn(maeklarObjektLaanService, 'getCreateBelaanad'); // spyOn(maeklarObjektLaanService, 'queryLaangivare'); // spyOn(domainService.pantTyp, 'query'); // spyOn(domainService.laanTyp, 'query'); // spyOn(domainService.amorteringsTyp, 'query'); // controller('KonstantEkonomiCtrl', { // $scope: $scope, // domainService: domainService, // maeklarObjektLaanService: maeklarObjektLaanService, // budService: budService, // instaellningarService: instaellningarService, // provisionService: provisionService, // medarbetareService: medarbetareService, // personService: personService, // maeklarObjektLaanOchPantbrevService: maeklarObjektLaanOchPantbrevService, // globalTimerService: globalTimerService, // }); // $scope.$digest(); // })); // it('borde hämta data', inject(function (inloggadAnvaendare) { // expect(maeklarObjektLaanOchPantbrevService.get).toHaveBeenCalled(); // expect(maeklarObjektLaanService.getCreateBelaanad).toHaveBeenCalled(); // expect(domainService.pantTyp.query).toHaveBeenCalled(); // expect(domainService.laanTyp.query).toHaveBeenCalled(); // expect(domainService.amorteringsTyp.query).toHaveBeenCalled(); // expect(maeklarObjektLaanService.queryLaangivare).not.toHaveBeenCalled(); // rootScopeMock.resolve(fb.RequestType.QUERY, '', inloggadAnvaendare); // })); // }); // describe('Lån', function () { // beforeEach(function () { // inject(function (getLaanOchPantbrev) { // //console.log(maeklarObjektLaanOchPantbrevService.getPendingRequests()); // spyOn(maeklarObjektLaanOchPantbrevService, 'get').and.returnValue(new fb.MaeklarObjektLaanOchPantbrev(getLaanOchPantbrev)); // }); // spyOn(maeklarObjektLaanService, 'getCreateBelaanad'); // spyOn(maeklarObjektLaanService, 'queryLaangivare'); // spyOn(domainService.pantTyp, 'query'); // spyOn(domainService.laanTyp, 'query'); // spyOn(domainService.amorteringsTyp, 'query'); // controller('KonstantEkonomiCtrl', { // $scope: $scope, // domainService: domainService, // maeklarObjektLaanService: maeklarObjektLaanService, // budService: budService, // instaellningarService: instaellningarService, // provisionService: provisionService, // medarbetareService: medarbetareService, // personService: personService, // maeklarObjektLaanOchPantbrevService: maeklarObjektLaanOchPantbrevService, // globalTimerService: globalTimerService, // }); // $scope.$digest(); // }); // it('borde kunna lägga till ett lån', function () { // var laan = new fb.Laan({ // MaeklarObjektLaanId: 123456, // MaeklarObjektId: 7357, // Checksum: null, // LaangivareId: null, // LaangivareNamn: null, // LaangivareAdress: null, // LaangivareTelefonnummer: null, // LaangivareFaxnummer: null, // LaangivareKontaktpersonId: null, // LaangivareKontaktpersonNamn: null, // Laannummer: null, // LaanTyp: null, // Belopp: null, // PantsattBostadsraett: null, // Raenta: null, // Amortering: null, // AmorteringsTyp: null, // Raentejusteringsdag: null, // BundetTomDatum: null, // Loesenkostnader: [] // }); // spyOn(fb.Laan, 'newLaan').and.returnValue(laan); // $scope.addLaan(); // spyOn($scope, 'setActiveLaanId'); // expect($scope.disableAddingLaan).toBeTruthy(); // maeklarObjektLaanService.resolve(fb.RequestType.ADD, '', laan); // $scope.$digest(); // expect($scope.disableAddingLaan).toBeFalsy(); // expect($scope.setActiveLaanId).toHaveBeenCalled(); // expect($scope.laanOchPantbrev.Laan['123456']).toBeTruthy(); // }); // it('borde kunna ta bort ett lån', function () { // expect($scope.laanOchPantbrev.Laan['1610']).toBeTruthy(); // expect($scope.laanOchPantbrev.LPMatrix['1610']).toBeTruthy(); // spyOn($scope.laanOchPantbrev.Laan['1610'], 'dequeue'); // $scope.removeLaan($scope.laanOchPantbrev.Laan['1610']); // expect($scope.laanOchPantbrev.Laan['1610']).toBeTruthy(); // expect($scope.laanOchPantbrev.LPMatrix['1610']).toBeTruthy(); // maeklarObjektLaanService.resolve(fb.RequestType.REMOVE, '1610', {}); // $scope.$digest(); // expect($scope.laanOchPantbrev.Laan['1610']).toBeFalsy(); // expect($scope.laanOchPantbrev.LPMatrix['1610']).toBeFalsy(); // }); // it('borde kunna lägga till en lösenkostnad på ett lån', function () { // spyOn(fb.Loesenkostnad, 'newLoesenkostnad').and.returnValue(new fb.Loesenkostnad({ // loesenkostnadid: 987654, // belopp: 0, // text: "" // })); // var laan: fb.Laan = $scope.laanOchPantbrev.Laan['1610']; // spyOn(laan, 'enqueue'); // var current = laan.Loesenkostnader.length; // $scope.addLoesenKostnad(laan); // $scope.$digest(); // expect(laan.Loesenkostnader.length).toEqual(current + 1); // expect(laan.enqueue).toHaveBeenCalled(); // }); // it('borde kunna ta bort en lösenkostnad på ett lån', function () { // var laan: fb.Laan = $scope.laanOchPantbrev.Laan['1620']; // spyOn(laan, 'enqueue'); // var current = laan.Loesenkostnader.length; // $scope.removeLoesenKostnad(laan, 1); // $scope.$digest(); // expect(laan.Loesenkostnader.length).toEqual(current - 1); // expect(laan.enqueue).toHaveBeenCalled(); // }); // it('borde kunna summera Inom på pantbrev för ett lån', function () { // expect($scope.sumPantbrevInom($scope.laanOchPantbrev.Laan['1609'])).toBe(575001); // expect($scope.sumPantbrevInom($scope.laanOchPantbrev.Laan['1610'])).toBe(0); // expect($scope.sumPantbrevInom($scope.laanOchPantbrev.Laan['1620'])).toBe(1125001); // }); // it('borde kunna summera belopp på pantbrev för ett lån', function () { // expect($scope.sumPantbrevBelopp($scope.laanOchPantbrev.Laan['1609'])).toBe(25001); // expect($scope.sumPantbrevBelopp($scope.laanOchPantbrev.Laan['1610'])).toBe(0); // expect($scope.sumPantbrevBelopp($scope.laanOchPantbrev.Laan['1620'])).toBe(575001); // }); // }); // describe('likvidavräkning', function () { // beforeEach(function () { // //$scope = rootScope.$new(); // spyOn(maeklarObjektLaanOchPantbrevService, 'get'); // spyOn(maeklarObjektLaanService, 'getCreateBelaanad'); // spyOn(maeklarObjektLaanService, 'queryLaangivare'); // spyOn(domainService.pantTyp, 'query'); // spyOn(domainService.laanTyp, 'query'); // spyOn(domainService.amorteringsTyp, 'query'); // controller('KonstantEkonomiCtrl', { // $scope: $scope, // domainService: domainService, // maeklarObjektLaanService: maeklarObjektLaanService, // budService: budService, // instaellningarService: instaellningarService, // provisionService: provisionService, // medarbetareService: medarbetareService, // personService: personService, // maeklarObjektLaanOchPantbrevService: maeklarObjektLaanOchPantbrevService, // globalTimerService: globalTimerService, // }); // $scope.$digest(); // inject(function (getLaanOchPantbrev) { // console.log(maeklarObjektLaanOchPantbrevService.getPendingRequests()); // }); // }); // it('beräknas med slutpris om objektet har slutpris', function () { // rootScope['maeklarObjekt'].$promise.then(function () { // $scope.maeklarObjekt.SlutPris.value = 1; // $scope.maeklarObjekt.StartPris.value = 0; // $scope.$digest(); // expect($scope.likvidavraekning.pris()).toEqual(1); // expect($scope.likvidavraekning.typ()).toEqual('slutpris'); // }); // }); // it('beräknas med utgångspris om objektet har utgångspris', function () { // rootScope['maeklarObjekt'].$promise.then(function () { // $scope.maeklarObjekt.SlutPris.value = 0; // $scope.maeklarObjekt.StartPris.value = 1; // $scope.$digest(); // expect($scope.likvidavraekning.pris()).toEqual(1); // expect($scope.likvidavraekning.typ()).toEqual('utgångspris'); // }); // }); // it('räknar ut "avgår tidigare reglerat" baserat på inmatad handpenning', function () { // $scope.maeklarObjekt.HandpenningBelopp.value = 100; // rootScope['maeklarObjekt'].$promise.then(function () { // $scope.$digest(); // expect($scope.likvidavraekning.avgaar()).toEqual(100); // }); // }); // it('räknar ut "avgår tidigare reglerat" baserat på 10% av köpeskillingen då handpenning saknas', function () { // rootScope['maeklarObjekt'].$promise.then(function () { // $scope.maeklarObjekt.HandpenningBelopp.value = 0; // $scope.maeklarObjekt.SlutPris.value = 100; // $scope.$digest(); // expect($scope.likvidavraekning.avgaar()).toEqual(10); // }); // }); // }); // describe('Provision', function () { // beforeEach(function () { // //$scope = rootScope.$new(); // spyOn(maeklarObjektLaanOchPantbrevService, 'get'); // spyOn(maeklarObjektLaanService, 'getCreateBelaanad'); // spyOn(maeklarObjektLaanService, 'queryLaangivare'); // spyOn(domainService.pantTyp, 'query'); // spyOn(domainService.laanTyp, 'query'); // spyOn(domainService.amorteringsTyp, 'query'); // spyOn(rootScope.maeklarObjekt, 'enqueue'); // controller('KonstantEkonomiCtrl', { // $scope: $scope, // domainService: domainService, // maeklarObjektLaanService: maeklarObjektLaanService, // budService: budService, // instaellningarService: instaellningarService, // provisionService: provisionService, // medarbetareService: medarbetareService, // personService: personService, // maeklarObjektLaanOchPantbrevService: maeklarObjektLaanOchPantbrevService, // globalTimerService: globalTimerService, // }); // inject(function (getMaeklarObjekt) { // rootScope.maeklarObjekt = new fb.MaeklarObjektDO(getMaeklarObjekt); // //rootScope.MaeklarObjekt.$promise.resolve(; // }); // $scope.maeklarObjekt.HandpenningErlagdDatum.value = "2001-01-01"; // $scope.maeklarObjekt.HandpenningRedovisadDatum.value = "2001-01-02"; // $scope.$digest(); // }); // it('Ränta redovisas till säljaren ska divideras med antalet dagar på året', function () { // rootScope['maeklarObjekt'].$promise.then(function () { // $scope.maeklarObjekt.HandpenningBelopp.value = 100; // $scope.provision.handpenningRaenta = new fb.ChangeTrack(0.25); // $scope.$digest(); // expect($scope.handpenning.beraeknad()).toEqual((0.25 * 1 * 100) / 365); // }); // }); // it('Antal dagar är aldrig < 0', function () { // rootScope['maeklarObjekt'].$promise.then(function () { // $scope.maeklarObjekt.HandpenningErlagdDatum.value = "2001-01-01"; // $scope.maeklarObjekt.HandpenningRedovisadDatum.value = "2001-01-01"; // $scope.$digest(); // expect($scope.handpenning.days()).toEqual(0); // $scope.maeklarObjekt.HandpenningErlagdDatum.value = "2001-01-01"; // $scope.maeklarObjekt.HandpenningRedovisadDatum.value = "2001-01-05"; // $scope.$digest(); // expect($scope.handpenning.days()).toEqual(4); // $scope.maeklarObjekt.HandpenningErlagdDatum.value = "2001-01-05"; // $scope.maeklarObjekt.HandpenningRedovisadDatum.value = "2001-01-01"; // $scope.$digest(); // expect($scope.handpenning.days()).toEqual(0); // }); // }); // //it('Provision hanterar komma-separerade procentsatser', function(){ // // $scope.provisionProcent.value = "2,3"; // // $scope.$digest(); // // expect($scope.maeklarObjekt.ProvisProc.value).toEqual(2.3); // //}); // /* // it('Ink moms sätter rätt belopp', function(){ // $scope.maeklarObjekt.ProvisProc.value = null; // $scope.maeklarObjekt.ProvisFast.value = 100000; // $scope.maeklarObjekt.ProvisText.value = null; // $scope.maeklarObjekt.ProvisAerInklusiveMoms.value = true; // $scope.provisionFast.value = 1000000; // $scope.$digest(); // expect($scope.provision.moms).toEqual(20000); // expect($scope.provision.arvode).toEqual(80000); // }); // it('ex. moms sätter rätt belopp', function(){ // $scope.provision.valdProvisTyp = 1; // $scope.maeklarObjekt.ProvisFast.value = 100000; // $scope.maeklarObjekt.ProvisAerInklusiveMoms.value = false; // $scope.$digest(); // expect($scope.provision.moms).toEqual(25000); // expect($scope.provision.arvode).toEqual(100000); // }); // it('Sätter provisionstyp till rörlig, då rörlig provision finns', function(){ // $scope.maeklarObjekt.ProvisFast.value = null; // $scope.maeklarObjekt.ProvisProc.value = 2.3; // $scope.$digest(); // expect($scope.provision.valdProvisTyp).toEqual(0); // }); // it('Sätter provisionstyp till rörlig, då rörlig provision finns och fast överstiger uträknat ', function(){ // $scope.maeklarObjekt.ProvisFast.value = 100000; // $scope.maeklarObjekt.ProvisProc.value = null; // expect($scope.provision.valdProvisTyp).toEqual(1); // }); // it('Sätter provisionstyp till fast, då endast fast provision finns', function(){ // $scope.maeklarObjekt.ProvisFast.value = 100000; // $scope.maeklarObjekt.ProvisProc.value = null; // $scope.maeklarObjekt.ProvisText.value = null; // console.log( $scope.maeklarObjekt.ProvisFast.value, $scope.maeklarObjekt.ProvisProc.value, $scope.maeklarObjekt.ProvisText.value); // $scope.$digest(); // console.log( $scope.maeklarObjekt.ProvisFast.value, $scope.maeklarObjekt.ProvisProc.value, $scope.maeklarObjekt.ProvisText.value); // expect($scope.provision.valdProvisTyp).toEqual(1); // }); // it('Sätter provisionstyp till fritext, då fast och text finns', function(){ // $scope.maeklarObjekt.ProvisFast.value = 100000; // $scope.maeklarObjekt.ProvisProc.value = null; // $scope.maeklarObjekt.ProvisText.value = "hej"; // $scope.$digest(); // expect($scope.provision.valdProvisTyp).toEqual(2); // }); // */ // }); //});