func TestSMSLoadCsvTpSmsChrg1(t *testing.T) { timings := `ALWAYS,*any,*any,*any,*any,00:00:00` rates := `RT_SMS_5c,0,0.005,1,1,0` destinationRates := `DR_SMS_1,*any,RT_SMS_5c,*up,4` ratingPlans := `RP_SMS1,DR_SMS_1,ALWAYS,10` ratingProfiles := `*out,cgrates.org,sms,*any,2012-01-01T00:00:00Z,RP_SMS1,` csvr := engine.NewStringCSVReader(ratingDb, acntDb, ',', "", timings, rates, destinationRates, ratingPlans, ratingProfiles, "", "", "", "", "", "", "", "") if err := csvr.LoadTimings(); err != nil { t.Fatal(err) } if err := csvr.LoadRates(); err != nil { t.Fatal(err) } if err := csvr.LoadDestinationRates(); err != nil { t.Fatal(err) } if err := csvr.LoadRatingPlans(); err != nil { t.Fatal(err) } if err := csvr.LoadRatingProfiles(); err != nil { t.Fatal(err) } csvr.WriteToDatabase(false, false) ratingDb.CacheRating(nil, nil, nil, nil, nil) if cachedRPlans := cache2go.CountEntries(engine.RATING_PLAN_PREFIX); cachedRPlans != 1 { t.Error("Wrong number of cached rating plans found", cachedRPlans) } if cachedRProfiles := cache2go.CountEntries(engine.RATING_PROFILE_PREFIX); cachedRProfiles != 1 { t.Error("Wrong number of cached rating profiles found", cachedRProfiles) } }
func TestCosts1LoadCsvTp(t *testing.T) { timings := `ALWAYS,*any,*any,*any,*any,00:00:00 ASAP,*any,*any,*any,*any,*asap` dests := `GERMANY,+49 GERMANY_MOBILE,+4915 GERMANY_MOBILE,+4916 GERMANY_MOBILE,+4917` rates := `RT_1CENT,0,1,1s,1s,0s RT_DATA_2c,0,0.002,10,10,0 RT_SMS_5c,0,0.005,1,1,0` destinationRates := `DR_RETAIL,GERMANY,RT_1CENT,*up,4 DR_RETAIL,GERMANY_MOBILE,RT_1CENT,*up,4 DR_DATA_1,*any,RT_DATA_2c,*up,4 DR_SMS_1,*any,RT_SMS_5c,*up,4` ratingPlans := `RP_RETAIL,DR_RETAIL,ALWAYS,10 RP_DATA1,DR_DATA_1,ALWAYS,10 RP_SMS1,DR_SMS_1,ALWAYS,10` ratingProfiles := `*out,cgrates.org,call,*any,2012-01-01T00:00:00Z,RP_RETAIL, *out,cgrates.org,data,*any,2012-01-01T00:00:00Z,RP_DATA1, *out,cgrates.org,sms,*any,2012-01-01T00:00:00Z,RP_SMS1,` csvr := engine.NewStringCSVReader(ratingDb, acntDb, ',', dests, timings, rates, destinationRates, ratingPlans, ratingProfiles, "", "", "", "", "", "", "", "") if err := csvr.LoadTimings(); err != nil { t.Fatal(err) } if err := csvr.LoadDestinations(); err != nil { t.Fatal(err) } if err := csvr.LoadRates(); err != nil { t.Fatal(err) } if err := csvr.LoadDestinationRates(); err != nil { t.Fatal(err) } if err := csvr.LoadRatingPlans(); err != nil { t.Fatal(err) } if err := csvr.LoadRatingProfiles(); err != nil { t.Fatal(err) } csvr.WriteToDatabase(false, false) ratingDb.CacheRating(nil, nil, nil, nil, nil) if cachedRPlans := cache2go.CountEntries(engine.RATING_PLAN_PREFIX); cachedRPlans != 3 { t.Error("Wrong number of cached rating plans found", cachedRPlans) } if cachedRProfiles := cache2go.CountEntries(engine.RATING_PROFILE_PREFIX); cachedRProfiles != 3 { t.Error("Wrong number of cached rating profiles found", cachedRProfiles) } }
func TestLoadCsvTp3(t *testing.T) { timings := `ALWAYS,*any,*any,*any,*any,00:00:00 ASAP,*any,*any,*any,*any,*asap` destinations := `DST_UK_Mobile_BIG5,447596 DST_UK_Mobile_BIG5,447956` rates := `RT_UK_Mobile_BIG5_PKG,0.01,0,20s,20s,0s RT_UK_Mobile_BIG5,0.01,0.10,1s,1s,0s` destinationRates := `DR_UK_Mobile_BIG5_PKG,DST_UK_Mobile_BIG5,RT_UK_Mobile_BIG5_PKG,*up,8 DR_UK_Mobile_BIG5,DST_UK_Mobile_BIG5,RT_UK_Mobile_BIG5,*up,8` ratingPlans := `RP_UK_Mobile_BIG5_PKG,DR_UK_Mobile_BIG5_PKG,ALWAYS,10 RP_UK,DR_UK_Mobile_BIG5,ALWAYS,10` ratingProfiles := `*out,cgrates.org,call,*any,2013-01-06T00:00:00Z,RP_UK, *out,cgrates.org,call,discounted_minutes,2013-01-06T00:00:00Z,RP_UK_Mobile_BIG5_PKG,` sharedGroups := `` lcrs := `` actions := `TOPUP10_AC1,*topup_reset,*voice,*out,40,*unlimited,DST_UK_Mobile_BIG5,discounted_minutes,,10,,,10` actionPlans := `TOPUP10_AT,TOPUP10_AC1,ASAP,10` actionTriggers := `` accountActions := `cgrates.org,12346,*out,TOPUP10_AT,` derivedCharges := `` cdrStats := `` csvr := engine.NewStringCSVReader(ratingDb3, acntDb3, ',', destinations, timings, rates, destinationRates, ratingPlans, ratingProfiles, sharedGroups, lcrs, actions, actionPlans, actionTriggers, accountActions, derivedCharges, cdrStats) if err := csvr.LoadDestinations(); err != nil { t.Fatal(err) } if err := csvr.LoadTimings(); err != nil { t.Fatal(err) } if err := csvr.LoadRates(); err != nil { t.Fatal(err) } if err := csvr.LoadDestinationRates(); err != nil { t.Fatal(err) } if err := csvr.LoadRatingPlans(); err != nil { t.Fatal(err) } if err := csvr.LoadRatingProfiles(); err != nil { t.Fatal(err) } if err := csvr.LoadSharedGroups(); err != nil { t.Fatal(err) } if err := csvr.LoadLCRs(); err != nil { t.Fatal(err) } if err := csvr.LoadActions(); err != nil { t.Fatal(err) } if err := csvr.LoadActionTimings(); err != nil { t.Fatal(err) } if err := csvr.LoadActionTriggers(); err != nil { t.Fatal(err) } if err := csvr.LoadAccountActions(); err != nil { t.Fatal(err) } if err := csvr.LoadDerivedChargers(); err != nil { t.Fatal(err) } csvr.WriteToDatabase(false, false) if acnt, err := acntDb3.GetAccount("*out:cgrates.org:12346"); err != nil { t.Error(err) } else if acnt == nil { t.Error("No account saved") } ratingDb3.CacheRating(nil, nil, nil, nil, nil) acntDb3.CacheAccounting(nil, nil, nil, nil) if cachedDests := cache2go.CountEntries(engine.DESTINATION_PREFIX); cachedDests != 2 { t.Error("Wrong number of cached destinations found", cachedDests) } if cachedRPlans := cache2go.CountEntries(engine.RATING_PLAN_PREFIX); cachedRPlans != 2 { t.Error("Wrong number of cached rating plans found", cachedRPlans) } if cachedRProfiles := cache2go.CountEntries(engine.RATING_PROFILE_PREFIX); cachedRProfiles != 2 { t.Error("Wrong number of cached rating profiles found", cachedRProfiles) } if cachedActions := cache2go.CountEntries(engine.ACTION_PREFIX); cachedActions != 1 { t.Error("Wrong number of cached actions found", cachedActions) } }