• N.M. Sharma
  • NEWBIE
  • 271 Points
  • Member since 2016
  • Developer
  • iBirds Software Services Pvt. Ltd.


  • Chatter
    Feed
  • 4
    Best Answers
  • 0
    Likes Received
  • 1
    Likes Given
  • 1
    Questions
  • 36
    Replies
Hi ,

Can someone please help me to cover the below 2 lines in catch block in my contoller class 

  Apexpages.addMessage(new ApexPages.message(Apexpages.Severity.Error, d.getMessage())) ;
            status = 'unsaved';
I have used the below code in my class but its entering the catch block while testing, but not sure how to cover those lines.
if(Test.isRunningTest())
              integer intt = 10/0;

Apex class 

public with sharing class mycasecom {

    public String test2 { get; set; }
    public String test1 { get; set; }
    public string test3 {get;set;}
    public string status {get;set;}
    public casecomment ca;
    public case c ;
    public ID ID ;
       
     public void save() 
     {
     
     id = ApexPages.currentPage().getParameters().get('caseid');
     system.debug('case id entered' + ID);
      ca = new casecomment();
      ca.ParentId= id;
      ca.commentbody = test1 + '\n' + test2 + '\n' + test3;
      ca.IsPublished = true;
      list<case> c = [select Status from case where ID=:ID];
      list<case> cc = new list<case>();
      for(case cd : c)
      {
          cd.Status = 'Closed';
          cc.add(cd);
      }
      try {
             insert ca;
              update cc;
           status = 'saved';
         system.debug('status value'+ status);
       
          if(Test.isRunningTest())
              integer intt = 10/0;
       }catch(DmlException d)
      {
       Apexpages.addMessage(new ApexPages.message(Apexpages.Severity.Error, d.getMessage())) ;
            status = 'unsaved';
      }

}
}

Test Class 

@isTest
public class PopupTestClass 
{
    @isTest public static void withcaseid()
    {
        
        case c = new case(status = 'New',Origin = 'Phone');
        insert c;
        case ca = [select id, status from case where status = 'New'];
        pagereference p = page.casecomment;
        test.setCurrentPage(p);
        mycasecom cs = new mycasecom();
        cs.Test2=('test1');
        cs.Test1=('test2');
        cs.Test3=('test3');
   
        apexpages.currentPage().getparameters().put('caseid', ca.id);
        cs.save();
        
        casecomment cm = [select commentbody, isPublished from casecomment where parentid =: ca.Id];
        string str = cs.test1 +'\n'+ cs.test2 +'\n' +cs.test3;
        system.assertEquals(str , cm.CommentBody);
        system.assert(true, cm.ispublished);
        case g = [select Status from case where ID =: ca.Id];
        system.assertEquals('Closed', g.status);
        
        
            }
    
    @isTest static void withoutcaseid()
    {
        
        case c = new case(status = 'New',Origin = 'Phone');
        insert c;
        pagereference p = page.casecomment;
        test.setCurrentPage(p);
        mycasecom cs = new mycasecom();
        cs.Test2=('test1');
        cs.Test1=('test2');
        cs.Test3=('test3');
       
        apexpages.currentPage().getparameters().put('caseid', null);
        cs.save();
       
        system.assertEquals('unsaved', cs.status);
        
   }
}
  • June 15, 2016
  • Like
  • 0
Hi,

Can any one  please help me on Batch apex test class as mentioned below.

Batch Apex:

global class MasterAccountNewLogoDate implements Database.Batchable<AggregateResult>{

        /// get all Account Group by Ultimate_Parent_ID__c
        
        /* START Method */
        
        global Iterable<AggregateResult> start(database.batchablecontext BC){
              return (AccountsWithParentID ); 
        }
        
        List<AggregateResult> AccountsWithParentID = [Select Ultimate_Parent_ID__c, Min(SW_New_Landing_Date_Formula__c) NewLogo_StatusDate from Account where Ultimate_Parent_ID__c!=Null and SW_New_Landing_Date_Formula__c!=Null group by Ultimate_Parent_ID__c];

        
        /* EXECUTE Method */
        global void execute(Database.BatchableContext BC, List<AggregateResult> scope){        
            
                Map<id, String> AccountNewLogoStatus = new Map<id, String>();
                Map<id, date> AccountNewlogodate = new Map<id, date>();
                List<account> AccountToUpdate = new List<Account>();
                List<id> AccountId = new List<id>();
                String tempStatus='';
                
                ////loop through the Ultimate Parent Ids and create map of id and newlogo dates
                for (AggregateResult ParentIds : scope){
                        AccountId.add((ID)ParentIds.get('Ultimate_Parent_ID__c'));
                        AccountNewlogodate.put((ID)ParentIds.get('Ultimate_Parent_ID__c'),(Date)ParentIds.get('NewLogo_StatusDate')); 
                        }
               Account[] AllAccounts = [SELECT id,SW_Status_Formula__c,Ultimate_Parent_ID__c,GED_Master_Account_Status__c,GED_Master_Account_New_Logo_Date__c from Account where Ultimate_Parent_ID__c in :AccountId ];
                  
                                
                //create map of the different statuses 
                for(Account Acc: AllAccounts ){ 
                    if(AccountNewLogoStatus.get(Acc.Ultimate_Parent_ID__c)!=Null){                       
                        tempStatus = AccountNewLogoStatus.get(Acc.Ultimate_Parent_ID__c);
                        
                        if(Acc.SW_Status_Formula__c =='Prospect' ){
                            tempStatus = tempStatus + ',P';                        
                        }
                        if(Acc.SW_Status_Formula__c =='Customer (New Landing)' ){
                            tempStatus = tempStatus + ',N';
                        }
                        if(Acc.SW_Status_Formula__c =='Customer (Active)' ){
                            tempStatus = tempStatus + ',A';
                        }
                        if(Acc.SW_Status_Formula__c =='Customer (Dormant)' ){
                            tempStatus = tempStatus + ',D';
                        }
                        AccountNewLogoStatus.put(Acc.Ultimate_Parent_ID__c,tempStatus);
                        tempStatus ='';
                    }
                    else
                    {
                        if(Acc.SW_Status_Formula__c =='Prospect' ){
                            AccountNewLogoStatus.put(Acc.Ultimate_Parent_ID__c,'P');
                        }
                        if(Acc.SW_Status_Formula__c =='Customer (New Landing)'){
                            AccountNewLogoStatus.put(Acc.Ultimate_Parent_ID__c,'N');
                        }
                        if(Acc.SW_Status_Formula__c =='Customer (Active)'){
                            AccountNewLogoStatus.put(Acc.Ultimate_Parent_ID__c,'A');
                        }
                        if(Acc.SW_Status_Formula__c =='Customer (Dormant)'){
                            AccountNewLogoStatus.put(Acc.Ultimate_Parent_ID__c,'D');
                        }
                    }
                }
                
                //loop through to update the NL_status
                for (Account Acc: AllAccounts ){   
                    Acc.GED_Master_Account_New_Logo_Date__c =AccountNewlogodate.get(Acc.Ultimate_Parent_ID__c);
                     //Acc.GED_Master_Account_Status__c =AccountNewlogodate.ValueOf(Acc.Ultimate_Parent_ID__c);
                    if (AccountNewLogoStatus.get(Acc.Ultimate_Parent_ID__c)!=Null){
                        tempStatus=AccountNewLogoStatus.get(Acc.Ultimate_Parent_ID__c);
                        if(tempStatus.contains('N') && tempStatus.containsNone('A') && tempStatus.containsNone('D')){
                            Acc.GED_Master_Account_Status__c ='Customer (New Landing)';
                        }
                        if(tempStatus.contains('D') && tempStatus.containsNone('A') && tempStatus.containsNone('N')){
                            Acc.GED_Master_Account_Status__c ='Customer (Dormant)';
                        }
                        if(tempStatus.contains('P') && tempStatus.containsNone('A') && tempStatus.containsNone('D')){
                            Acc.GED_Master_Account_Status__c ='Prospect';
                        }
                        if(tempStatus.contains('A')){
                            Acc.GED_Master_Account_Status__c ='Customer (Active)';
                        }           
                    }
                    AccountToUpdate.add(Acc); 
                } 
            if(AccountToUpdate.size()>0){
                Update AccountToUpdate;
            }         
                  
            }//execute loop
            
        /* FINISH Method */
        global void finish(Database.BatchableContext info){
               
        }//global void finish loop
}//global class loop

Thanks
  • June 13, 2016
  • Like
  • 0
Hello,

Part of the module is where you create couple of profiles with object level permissions. Accordingly i have set the right permissions for account object (R/E/VA), Opportunity (R/C/E) -- NO VIEW ALL for Field Sales Profile.

Everytime i check the challenge am getting below error; any help.
Error:
Challenge Not yet complete... here's what's wrong: 
The Field Sales User does not appear to have the correct object permissions for Accounts and Opportunities.
Hi Team,

While we are trying to run the batch apex we are facing the" First error: Apex CPU time limit exceeded" .why this error is  occured and  how to resolve this please can anyone help me..

Thanks in advance..
  • June 10, 2016
  • Like
  • 0
At the time of refreshing Full Sandbox from Production. Can we still able to access the full sandbox or it's unavailable which the time of refresh?
At the time of refreshing Full Sandbox from Production. Can we still able to access the full sandbox or it's unavailable which the time of refresh?
trigger AccountMergeTrigger on Account (after delete) {
        List<Account_Merge_History__c> listAccountBackup = new List<Account_Merge_History__c>();
            for(Account acct : trigger.Old) {
            if(String.isNotBlank(acct.MasterRecordId)) {    
            listAccountBackup.add(new Account_Merge_History__c(Name = acct.Name,ma_a__c =acct.MasterRecordId, ma_b__c = acct.Id, ma_e__c = acct.Id, ma_f__c = acct.MasterRecordId ));
        }
            }
        if(listAccountBackup.size() > 0) {
               insert listAccountBackup;
    }    
}

Please suggest
Hi All,

I need to access the individual value of a multiselect picklist field in my flow and compare each value to a text field in another object.
 While doing so, all the values of multiselect picklist are coming in the format "HR;Sales;Finance" but I have to access them individually.
Can any one help me out in this. 

Thanks In Advance!
Hi, 

I have a 5 Reports in a folder... i shared the folder and user is able to see 4 but 1 is showing insufficent privilege access. But the user has access to Object and all fields. 

And I saved the report in Unfield folder, logged in as user and run the same.. Now its showing fine... 

What is wrong here.!! 

Thanks,
​Vignesh
Hi SEDC ppl,

I have two recordtypes. I have a site to simply display the values in a record. Once we need to see fields of one recordtype. We can understood the recordtype using param in URL. How can i fetch that only fields ? How can i achieve it?

​Its urgent.Please help me.
Hi ,

Can someone please help me to cover the below 2 lines in catch block in my contoller class 

  Apexpages.addMessage(new ApexPages.message(Apexpages.Severity.Error, d.getMessage())) ;
            status = 'unsaved';
I have used the below code in my class but its entering the catch block while testing, but not sure how to cover those lines.
if(Test.isRunningTest())
              integer intt = 10/0;

Apex class 

public with sharing class mycasecom {

    public String test2 { get; set; }
    public String test1 { get; set; }
    public string test3 {get;set;}
    public string status {get;set;}
    public casecomment ca;
    public case c ;
    public ID ID ;
       
     public void save() 
     {
     
     id = ApexPages.currentPage().getParameters().get('caseid');
     system.debug('case id entered' + ID);
      ca = new casecomment();
      ca.ParentId= id;
      ca.commentbody = test1 + '\n' + test2 + '\n' + test3;
      ca.IsPublished = true;
      list<case> c = [select Status from case where ID=:ID];
      list<case> cc = new list<case>();
      for(case cd : c)
      {
          cd.Status = 'Closed';
          cc.add(cd);
      }
      try {
             insert ca;
              update cc;
           status = 'saved';
         system.debug('status value'+ status);
       
          if(Test.isRunningTest())
              integer intt = 10/0;
       }catch(DmlException d)
      {
       Apexpages.addMessage(new ApexPages.message(Apexpages.Severity.Error, d.getMessage())) ;
            status = 'unsaved';
      }

}
}

Test Class 

@isTest
public class PopupTestClass 
{
    @isTest public static void withcaseid()
    {
        
        case c = new case(status = 'New',Origin = 'Phone');
        insert c;
        case ca = [select id, status from case where status = 'New'];
        pagereference p = page.casecomment;
        test.setCurrentPage(p);
        mycasecom cs = new mycasecom();
        cs.Test2=('test1');
        cs.Test1=('test2');
        cs.Test3=('test3');
   
        apexpages.currentPage().getparameters().put('caseid', ca.id);
        cs.save();
        
        casecomment cm = [select commentbody, isPublished from casecomment where parentid =: ca.Id];
        string str = cs.test1 +'\n'+ cs.test2 +'\n' +cs.test3;
        system.assertEquals(str , cm.CommentBody);
        system.assert(true, cm.ispublished);
        case g = [select Status from case where ID =: ca.Id];
        system.assertEquals('Closed', g.status);
        
        
            }
    
    @isTest static void withoutcaseid()
    {
        
        case c = new case(status = 'New',Origin = 'Phone');
        insert c;
        pagereference p = page.casecomment;
        test.setCurrentPage(p);
        mycasecom cs = new mycasecom();
        cs.Test2=('test1');
        cs.Test1=('test2');
        cs.Test3=('test3');
       
        apexpages.currentPage().getparameters().put('caseid', null);
        cs.save();
       
        system.assertEquals('unsaved', cs.status);
        
   }
}
  • June 15, 2016
  • Like
  • 0
Requirement:
I want to check if my mailbox has received an email from specific sender and read the excel sheet attached to it and use the data in excel sheet in my apex code.
Hi Experts,

I am not able to query the opportunity history in a test class. If I tried to query the history, it returns null values. Please let me know how to use the opportunity history object in apex test class.

Thanks,
Vijay
I have completed the challange and also tested it, all is working fine but then also when I check challange its throws the below mention error.
Challenge Not yet complete... here's what's wrong: 
No Apex test class named 'AnimalLocatorTest' was found.

Challange name is Apex Integration Services > Apex REST Callouts.
Please can you help me out in this.
 

Hi everyone,
I have created a custom objectand in that i have a picklist field when ever we choose the value in that i want to show Date field and another picklist field. But by default these two fields must be hidden. Can help me over here.
Thanks In advance.
Regards,
Bhargav.
Hello there,

I have a managed packag where I have enabled SCPL (State and Country Picklist) and I have used field State Code and Coutry Code in my apex classes for populating picklist values.

After creating package when I am trying to upload it in other instance, it is asking to enable SCPL in the destination org. Now, I want to make this thing optional during installation. Is there any way to achieve this?

Thanks in advance.
For example, when I open detail page fpr some account record, I want to create contact record using account information. How can I do that?
HI I created a batch apex but my test class is not covering the entire code, not sure where i am going wrong. Looks like query in start method is not returning any test records which i created. Please shed some light on where i am going wrong.

Batch class:
global class updatePrimaryZipTerritory implements Database.Batchable<sobject>{
    public String query='select id,Zip_vod__c,INDV_CL_Territory__c,Country_vod__c from Address_vod__c where Primary_vod__c=TRUE AND Country_vod__c=\'us\'';
    global Database.QueryLocator start(Database.BatchableContext BC){
        List<Address_vod__c> ad=[select id,Zip_vod__c,INDV_CL_Territory__c,Country_vod__c from Address_vod__c where Primary_vod__c=TRUE AND Country_vod__c='us'];
        System.debug('****'+ad.size());
        return Database.getQueryLocator(query);
    }
    global void execute(Database.BatchableContext BC, List<sobject> scope){
        List<Address_vod__c> addrList=(List<Address_vod__c>)scope;
        System.debug('Query List'+addrList);
        List<Address_vod__c> updateTerr=new List<Address_vod__c>();
        Set<String> zipIds=new Set<String>();
        for(Address_vod__c ad:addrList){
            if(ad.Zip_vod__c!='')
            zipIds.add(ad.Zip_vod__c);
        }
        System.debug('Zip Codes'+zipIds+'Size'+zipIds.size());
           Map<String,String> zipTerr=new Map<String,String>();
        for(INDV_Zip_To_Territory__c zip:[select Name,INDV_Territory_Id__c from INDV_Zip_To_Territory__c where Name in: zipIds]){
                        zipTerr.put(zip.Name,zip.INDV_Territory_Id__c);
        }
        System.debug('Map of Zip Terr'+zipTerr+'Size'+zipTerr.size());
        if(!zipTerr.isEmpty()){
        for(Address_vod__c add:addrList){
            if(zipTerr.containsKey(add.Zip_vod__c)){
                if(String.isBlank(add.INDV_CL_Territory__c) || zipTerr.get(add.Zip_vod__c)!=add.INDV_CL_Territory__c){
                    add.INDV_CL_Territory__c=zipTerr.get(add.Zip_vod__c);
                    updateTerr.add(add);
                }
            }                
        }
        }    
        System.debug('Update Territory List'+updateTerr+updateTerr.size());
        if(!updateTerr.isEmpty()){
            update updateTerr;
        }
    }
    global void finish(Database.BatchableContext BC){
   
    }
}

Test Class:
@isTest
private class updatePrimaryZipTerritoryTest {
   static testmethod void updateTerritoryTestMethod(){
        List<INDV_Zip_To_Territory__c> zip_terr=new List<INDV_Zip_To_Territory__c>();
        List<Address_vod__c> addrList=new List<Address_vod__c>();
           Account acc=new Account(lastName='Test Batch');
        insert acc;
       List<String> zip=new List<String>{'00680', '00681', '00682', '00683', '00684', '00685', '00686', '00687', '00688', '00689'};
        for(integer i=0;i<10;i++){
            addrList.add(new Address_vod__c(Account_vod__c=acc.id,Name='test'+i,Primary_vod__c=TRUE,Country_vod__c='us',city_vod__c='test',State_vod__c='VA',Zip_vod__c=zip[i]));
            zip_terr.add(new INDV_Zip_To_Territory__c(Name=zip[i],INDV_Territory_Id__c='29999999'));
        }
        insert addrList;
         insert zip_terr;
        
        system.debug('Before Address+++'+addrList);    
        Test.startTest();
        updatePrimaryZipTerritory cb=new updatePrimaryZipTerritory();
        Id batchId = Database.executeBatch(cb);
        Test.stopTest();

        system.debug('After Address+++'+addrList);
        System.assertEquals(7,[select count() from Address_vod__c where INDV_CL_Territory__c!='']);
    }
}

Thanks
 
Hi,

Can any one  please help me on Batch apex test class as mentioned below.

Batch Apex:

global class MasterAccountNewLogoDate implements Database.Batchable<AggregateResult>{

        /// get all Account Group by Ultimate_Parent_ID__c
        
        /* START Method */
        
        global Iterable<AggregateResult> start(database.batchablecontext BC){
              return (AccountsWithParentID ); 
        }
        
        List<AggregateResult> AccountsWithParentID = [Select Ultimate_Parent_ID__c, Min(SW_New_Landing_Date_Formula__c) NewLogo_StatusDate from Account where Ultimate_Parent_ID__c!=Null and SW_New_Landing_Date_Formula__c!=Null group by Ultimate_Parent_ID__c];

        
        /* EXECUTE Method */
        global void execute(Database.BatchableContext BC, List<AggregateResult> scope){        
            
                Map<id, String> AccountNewLogoStatus = new Map<id, String>();
                Map<id, date> AccountNewlogodate = new Map<id, date>();
                List<account> AccountToUpdate = new List<Account>();
                List<id> AccountId = new List<id>();
                String tempStatus='';
                
                ////loop through the Ultimate Parent Ids and create map of id and newlogo dates
                for (AggregateResult ParentIds : scope){
                        AccountId.add((ID)ParentIds.get('Ultimate_Parent_ID__c'));
                        AccountNewlogodate.put((ID)ParentIds.get('Ultimate_Parent_ID__c'),(Date)ParentIds.get('NewLogo_StatusDate')); 
                        }
               Account[] AllAccounts = [SELECT id,SW_Status_Formula__c,Ultimate_Parent_ID__c,GED_Master_Account_Status__c,GED_Master_Account_New_Logo_Date__c from Account where Ultimate_Parent_ID__c in :AccountId ];
                  
                                
                //create map of the different statuses 
                for(Account Acc: AllAccounts ){ 
                    if(AccountNewLogoStatus.get(Acc.Ultimate_Parent_ID__c)!=Null){                       
                        tempStatus = AccountNewLogoStatus.get(Acc.Ultimate_Parent_ID__c);
                        
                        if(Acc.SW_Status_Formula__c =='Prospect' ){
                            tempStatus = tempStatus + ',P';                        
                        }
                        if(Acc.SW_Status_Formula__c =='Customer (New Landing)' ){
                            tempStatus = tempStatus + ',N';
                        }
                        if(Acc.SW_Status_Formula__c =='Customer (Active)' ){
                            tempStatus = tempStatus + ',A';
                        }
                        if(Acc.SW_Status_Formula__c =='Customer (Dormant)' ){
                            tempStatus = tempStatus + ',D';
                        }
                        AccountNewLogoStatus.put(Acc.Ultimate_Parent_ID__c,tempStatus);
                        tempStatus ='';
                    }
                    else
                    {
                        if(Acc.SW_Status_Formula__c =='Prospect' ){
                            AccountNewLogoStatus.put(Acc.Ultimate_Parent_ID__c,'P');
                        }
                        if(Acc.SW_Status_Formula__c =='Customer (New Landing)'){
                            AccountNewLogoStatus.put(Acc.Ultimate_Parent_ID__c,'N');
                        }
                        if(Acc.SW_Status_Formula__c =='Customer (Active)'){
                            AccountNewLogoStatus.put(Acc.Ultimate_Parent_ID__c,'A');
                        }
                        if(Acc.SW_Status_Formula__c =='Customer (Dormant)'){
                            AccountNewLogoStatus.put(Acc.Ultimate_Parent_ID__c,'D');
                        }
                    }
                }
                
                //loop through to update the NL_status
                for (Account Acc: AllAccounts ){   
                    Acc.GED_Master_Account_New_Logo_Date__c =AccountNewlogodate.get(Acc.Ultimate_Parent_ID__c);
                     //Acc.GED_Master_Account_Status__c =AccountNewlogodate.ValueOf(Acc.Ultimate_Parent_ID__c);
                    if (AccountNewLogoStatus.get(Acc.Ultimate_Parent_ID__c)!=Null){
                        tempStatus=AccountNewLogoStatus.get(Acc.Ultimate_Parent_ID__c);
                        if(tempStatus.contains('N') && tempStatus.containsNone('A') && tempStatus.containsNone('D')){
                            Acc.GED_Master_Account_Status__c ='Customer (New Landing)';
                        }
                        if(tempStatus.contains('D') && tempStatus.containsNone('A') && tempStatus.containsNone('N')){
                            Acc.GED_Master_Account_Status__c ='Customer (Dormant)';
                        }
                        if(tempStatus.contains('P') && tempStatus.containsNone('A') && tempStatus.containsNone('D')){
                            Acc.GED_Master_Account_Status__c ='Prospect';
                        }
                        if(tempStatus.contains('A')){
                            Acc.GED_Master_Account_Status__c ='Customer (Active)';
                        }           
                    }
                    AccountToUpdate.add(Acc); 
                } 
            if(AccountToUpdate.size()>0){
                Update AccountToUpdate;
            }         
                  
            }//execute loop
            
        /* FINISH Method */
        global void finish(Database.BatchableContext info){
               
        }//global void finish loop
}//global class loop

Thanks
  • June 13, 2016
  • Like
  • 0
Join the Salesforce Community Cloud 2015 Innovation Award Winner and build the next generation of digital experiences powered by the Salesforce platform.  7Summits is looking for Salesforce talent including: 
  • Salesforce Developer - Chicago IL, Milwaukee WI or Remote: http://7summitsinc.applytojob.com/apply/9QiHxR
  • Salesforce Technical Architect - Chicago IL, Milwaukee WI or Remote: http://7summitsinc.applytojob.com/apply/8aEM4u
  • Salesforce Front End Developer -  Chicago IL, Milwaukee WI or Remote: - http://7summitsinc.applytojob.com/apply/BwSGOC
  • Salesforce Sales Engineer - Chicago IL, Milwaukee WI or Remote: http://7summitsinc.applytojob.com/apply/ry8VAL
  • Salesforce Business Analyst / Admin  -  Chicago IL, Milwaukee WI or Remote: http://7summitsinc.applytojob.com/apply/sufDyx
  • Salesforce Alliance Manager - San Francisco : http://7summitsinc.applytojob.com/apply/GsQ5J5 
We are a passionate team of strategists, designers, and developers that believe in unleashing people’s potential to create, innovate, and compete in entirely new ways. See our work at:
  • Plus Relocation Community: https://vimeo.com/139293581
  • SeaRay Boat Owners Community: https://vimeo.com/151956674
Ascend with the best—come see what we’re all about!
 
http://www.7summitsinc.com/